| Index: third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js
|
| diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js
|
| index d3e1658450971f86c1fb1e7f816abbb6b581dfc7..7cee5f89a7180b013705958de9be78c6aa47de9e 100644
|
| --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js
|
| +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/candidateview.js
|
| @@ -26,6 +26,7 @@ goog.require('i18n.input.chrome.inputview.elements.ElementType');
|
| goog.require('i18n.input.chrome.inputview.elements.content.Candidate');
|
| goog.require('i18n.input.chrome.inputview.elements.content.CandidateButton');
|
| goog.require('i18n.input.chrome.inputview.elements.content.ToolbarButton');
|
| +goog.require('i18n.input.chrome.inputview.util');
|
| goog.require('i18n.input.chrome.message.Name');
|
|
|
|
|
| @@ -38,6 +39,7 @@ var Type = i18n.input.chrome.inputview.elements.content.Candidate.Type;
|
| var ElementType = i18n.input.chrome.inputview.elements.ElementType;
|
| var content = i18n.input.chrome.inputview.elements.content;
|
| var Name = i18n.input.chrome.message.Name;
|
| +var util = i18n.input.chrome.inputview.util;
|
|
|
|
|
|
|
| @@ -153,6 +155,22 @@ CandidateView.prototype.widthInWeight_ = 0;
|
|
|
|
|
| /**
|
| + * The width in weight of the backspace key.
|
| + *
|
| + * @private {number}
|
| + */
|
| +CandidateView.prototype.backspaceWeight_ = 0;
|
| +
|
| +
|
| +/**
|
| + * The width of the icon like voice/down/up arrow.
|
| + *
|
| + * @private {number}
|
| + */
|
| +CandidateView.prototype.iconWidth_ = 120;
|
| +
|
| +
|
| +/**
|
| * True if it is showing candidate.
|
| *
|
| * @type {boolean}
|
| @@ -186,15 +204,6 @@ CandidateView.WIDTH_FOR_THREE_CANDIDATES_ = 200;
|
|
|
|
|
| /**
|
| - * The width of the icon at the right of the candidate view, it would be back
|
| - * icon, hide candidates icon, or show candidates icon.
|
| - *
|
| - * @private {number}
|
| - */
|
| -CandidateView.ICON_WIDTH_ = 120;
|
| -
|
| -
|
| -/**
|
| * The width of icons in the toolbar.
|
| *
|
| * @private {number}
|
| @@ -283,12 +292,17 @@ CandidateView.prototype.showNumberRow = function() {
|
| goog.dom.classlist.remove(this.getElement(),
|
| i18n.input.chrome.inputview.Css.THREE_CANDIDATES);
|
| var dom = this.getDomHelper();
|
| - var numberWidth = Math.floor((this.width - CandidateView.ICON_WIDTH_) / 10);
|
| dom.removeChildren(this.interContainer_);
|
| + var weightArray = [];
|
| + for (var i = 0; i < 10; i++) {
|
| + weightArray.push(1);
|
| + }
|
| + weightArray.push(this.widthInWeight_ - 10);
|
| + var values = util.splitValue(weightArray, this.width);
|
| for (var i = 0; i < 10; i++) {
|
| var candidateElem = new Candidate(String(i), goog.object.create(
|
| Name.CANDIDATE, String((i + 1) % 10)),
|
| - Type.NUMBER, this.height, false, numberWidth, this);
|
| + Type.NUMBER, this.height, false, values[i], this);
|
| candidateElem.render(this.interContainer_);
|
| }
|
| this.showingNumberRow = true;
|
| @@ -332,11 +346,11 @@ CandidateView.prototype.showCandidates = function(candidates,
|
| CandidateView.prototype.addThreeCandidates_ = function(candidates) {
|
| goog.dom.classlist.add(this.getElement(),
|
| i18n.input.chrome.inputview.Css.THREE_CANDIDATES);
|
| + this.interContainer_.style.width = 'auto';
|
| var num = Math.min(3, candidates.length);
|
| - var dom = this.getDomHelper();
|
| var width = CandidateView.WIDTH_FOR_THREE_CANDIDATES_;
|
| if (this.showingToolbar) {
|
| - width -= CandidateView.ICON_WIDTH_ / 3;
|
| + width -= this.iconWidth_ / 3;
|
| }
|
| for (var i = 0; i < num; i++) {
|
| var candidateElem = new Candidate(String(i), candidates[i], Type.CANDIDATE,
|
| @@ -368,9 +382,8 @@ CandidateView.prototype.clearCandidates = function() {
|
| CandidateView.prototype.addFullCandidates_ = function(candidates) {
|
| goog.dom.classlist.remove(this.getElement(),
|
| i18n.input.chrome.inputview.Css.THREE_CANDIDATES);
|
| - var totalWidth = Math.floor(this.width - CandidateView.ICON_WIDTH_);
|
| + var totalWidth = Math.floor(this.width - this.iconWidth_);
|
| var w = 0;
|
| - var dom = this.getDomHelper();
|
| var i;
|
| for (i = 0; i < candidates.length; i++) {
|
| var candidateElem = new Candidate(String(i), candidates[i], Type.CANDIDATE,
|
| @@ -402,19 +415,32 @@ CandidateView.prototype.addFullCandidates_ = function(candidates) {
|
| * keyset view and it is used for alignment of number row.
|
| *
|
| * @param {number} widthInWeight .
|
| + * @param {number} backspaceWeight .
|
| */
|
| -CandidateView.prototype.setWidthInWeight = function(widthInWeight) {
|
| +CandidateView.prototype.setWidthInWeight = function(widthInWeight,
|
| + backspaceWeight) {
|
| this.widthInWeight_ = widthInWeight;
|
| + this.backspaceWeight_ = backspaceWeight;
|
| };
|
|
|
|
|
| /** @override */
|
| CandidateView.prototype.resize = function(width, height) {
|
| + if (this.backspaceWeight_ > 0) {
|
| + var weightArray = [];
|
| + var keys = Math.round(this.widthInWeight_ - this.backspaceWeight_);
|
| + for (var i = 0; i < keys; i++) {
|
| + weightArray.push(1);
|
| + }
|
| + weightArray.push(this.backspaceWeight_);
|
| + var values = util.splitValue(weightArray, width);
|
| + this.iconWidth_ = values[values.length - 1];
|
| + }
|
| goog.style.setSize(this.getElement(), width, height);
|
| - this.interContainer_.style.height = height + 'px';
|
| + goog.style.setSize(this.interContainer_, (width - this.iconWidth_), height);
|
| for (var i = 0; i < this.iconButtons_.length; i++) {
|
| var button = this.iconButtons_[i];
|
| - button.resize(CandidateView.ICON_WIDTH_, height);
|
| + button.resize(this.iconWidth_, height);
|
| }
|
|
|
| for (var i = 0; i < this.toolbarButtons_.length; i++) {
|
| @@ -424,7 +450,7 @@ CandidateView.prototype.resize = function(width, height) {
|
|
|
| // Resets the candidates elements visibility.
|
| if (this.candidateCount > 0) {
|
| - var totalWidth = Math.floor(width - CandidateView.ICON_WIDTH_);
|
| + var totalWidth = Math.floor(width - this.iconWidth_);
|
| var w = 0;
|
| for (i = 0; i < this.candidateCount; i++) {
|
| if (w <= totalWidth) {
|
| @@ -497,13 +523,17 @@ CandidateView.prototype.updateByKeyset = function(
|
| keyset == CandidateView.HANDWRITING_VIEW_CODE_ ||
|
| keyset == CandidateView.EMOJI_VIEW_CODE_)) {
|
| this.switchToIcon(IconType.BACK, true);
|
| - } else {
|
| + } else if (keyset != CandidateView.HANDWRITING_VIEW_CODE_ &&
|
| + keyset != CandidateView.EMOJI_VIEW_CODE_) {
|
| this.switchToIcon(IconType.VOICE,
|
| this.adapter_.isVoiceInputEnabled &&
|
| this.adapter_.contextType != 'password');
|
| + } else {
|
| + this.switchToIcon(IconType.VOICE, false);
|
| }
|
|
|
| - if (isPasswordBox && keyset.indexOf('compact') != -1) {
|
| + if (isPasswordBox && (keyset.indexOf('compact') != -1 &&
|
| + keyset.indexOf('compact.symbol') == -1)) {
|
| this.showNumberRow();
|
| } else {
|
| this.hideNumberRow();
|
|
|