| Index: third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js
|
| diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js
|
| index b8aeac356d3de44ce877343bd359dc3998c52ace..7b1c973205dc91c6c85fc47c671a864afcaa6496 100644
|
| --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js
|
| +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/layout/extendedlayout.js
|
| @@ -15,6 +15,7 @@ goog.provide('i18n.input.chrome.inputview.elements.layout.ExtendedLayout');
|
|
|
| goog.require('goog.dom.classlist');
|
| goog.require('goog.style');
|
| +goog.require('goog.style.transform');
|
| goog.require('i18n.input.chrome.inputview.Css');
|
| goog.require('i18n.input.chrome.inputview.elements.Element');
|
| goog.require('i18n.input.chrome.inputview.elements.ElementType');
|
| @@ -73,6 +74,15 @@ ExtendedLayout.prototype.widthInWeight_ = 0;
|
|
|
|
|
| /**
|
| + * The current X (horizontal) position of the layout.
|
| + *
|
| + * @type {number}
|
| + * @private
|
| + */
|
| +ExtendedLayout.prototype.xPosition_ = 0;
|
| +
|
| +
|
| +/**
|
| * The time of transition for every transition distance.
|
| *
|
| * @private {number}
|
| @@ -156,7 +166,8 @@ ExtendedLayout.prototype.calculate_ = function() {
|
| ExtendedLayout.prototype.gotoPage = function(pageNum) {
|
| var width = goog.style.getSize(this.getElement()).width;
|
| var childNum = this.getChildCount();
|
| - this.elem.style.marginLeft = 0 - width / childNum * pageNum + 'px';
|
| + this.xPosition_ = 0 - width / childNum * pageNum;
|
| + goog.style.transform.setTranslation(this.elem, this.xPosition_, 0);
|
| };
|
|
|
|
|
| @@ -167,22 +178,22 @@ ExtendedLayout.prototype.gotoPage = function(pageNum) {
|
| */
|
| ExtendedLayout.prototype.slide = function(deltaX) {
|
| this.elem.style.transition = '';
|
| - var marginLeft = goog.style.getMarginBox(this.elem).left + deltaX;
|
| - this.elem.style.marginLeft = marginLeft + 'px';
|
| + this.xPosition_ += deltaX;
|
| + goog.style.transform.setTranslation(this.elem, this.xPosition_, 0);
|
| };
|
|
|
|
|
| /**
|
| - * Adjust the marginleft to the beginning of a page.
|
| + * Adjust the the horizontal position of the layout to align with a page.
|
| *
|
| * @param {number=} opt_distance The distance to adjust to.
|
| * @return {number} The page to adjust to after calculation.
|
| */
|
| -ExtendedLayout.prototype.adjustMarginLeft = function(opt_distance) {
|
| +ExtendedLayout.prototype.adjustXPosition = function(opt_distance) {
|
| var childNum = this.getChildCount();
|
| var width = goog.style.getSize(this.elem).width / childNum;
|
| - var marginLeft = Math.abs(goog.style.getMarginBox(this.elem).left);
|
| - var prev = Math.floor(marginLeft / width);
|
| + var absXPosition = Math.abs(this.xPosition_);
|
| + var prev = Math.floor(absXPosition / width);
|
| var next = prev + 1;
|
| var pageNum = 0;
|
| if (opt_distance) {
|
| @@ -191,7 +202,7 @@ ExtendedLayout.prototype.adjustMarginLeft = function(opt_distance) {
|
| } else {
|
| pageNum = next;
|
| }
|
| - } else if (marginLeft - prev * width < next * width - marginLeft) {
|
| + } else if (absXPosition - prev * width < next * width - absXPosition) {
|
| pageNum = prev;
|
| } else {
|
| pageNum = next;
|
| @@ -202,13 +213,13 @@ ExtendedLayout.prototype.adjustMarginLeft = function(opt_distance) {
|
| pageNum = childNum - 1;
|
| }
|
| if (opt_distance) {
|
| - this.elem.style.transition = 'margin-left ' +
|
| + this.elem.style.transition = 'transform ' +
|
| ExtendedLayout.BASE_TRANSITION_DURATION_ + 's';
|
| } else {
|
| - var transitionDuration = Math.abs(marginLeft - pageNum * width) /
|
| + var transitionDuration = Math.abs(absXPosition - pageNum * width) /
|
| ExtendedLayout.BASE_TRANSITION_DISTANCE_ *
|
| ExtendedLayout.BASE_TRANSITION_DURATION_;
|
| - this.elem.style.transition = 'margin-left ' +
|
| + this.elem.style.transition = 'transform ' +
|
| transitionDuration + 's ease-in';
|
| }
|
| this.gotoPage(pageNum);
|
|
|