Chromium Code Reviews| Index: ui/file_manager/gallery/js/slide_mode.js |
| diff --git a/ui/file_manager/gallery/js/slide_mode.js b/ui/file_manager/gallery/js/slide_mode.js |
| index a550d201a91c9d1e8fe7717b7eca3cc60db54a11..9e15dcfd2d7c6bf543c794336d7f01a9cadced25 100644 |
| --- a/ui/file_manager/gallery/js/slide_mode.js |
| +++ b/ui/file_manager/gallery/js/slide_mode.js |
| @@ -1826,6 +1826,13 @@ function TouchHandler(targetElement, slideMode) { |
| this.touchStarted_ = false; |
| /** |
| + * Whether the element is being clicked now or not. |
| + * @type {boolean} |
| + * @private |
| + */ |
| + this.clickStarted_ = false; |
| + |
| + /** |
| * The swipe action that should happen only once in an operation is already |
| * done or not. |
| * @type {boolean} |
| @@ -1867,6 +1874,11 @@ function TouchHandler(targetElement, slideMode) { |
| targetElement.ownerDocument.addEventListener('touchmove', onTouchEventBound); |
| targetElement.ownerDocument.addEventListener('touchend', onTouchEventBound); |
| + targetElement.addEventListener('mousedown', this.onMouseDown_.bind(this)); |
| + targetElement.ownerDocument.addEventListener('mousemove', |
| + this.onMouseMove_.bind(this)); |
| + targetElement.ownerDocument.addEventListener('mouseup', |
| + this.onMouseUp_.bind(this)); |
| targetElement.addEventListener('mousewheel', this.onMouseWheel_.bind(this)); |
| } |
| @@ -2049,11 +2061,79 @@ TouchHandler.prototype.onTouchEvent_ = function(event) { |
| TouchHandler.prototype.onMouseWheel_ = function(event) { |
| var event = assertInstanceof(event, MouseEvent); |
| var viewport = this.slideMode_.getViewport(); |
| - if (!this.enabled_ || !viewport.isZoomed()) |
| + if (!this.enabled_) |
| return; |
| + |
| this.stopOperation(); |
| - viewport.setOffset( |
| - viewport.getOffsetX() + event.wheelDeltaX, |
| - viewport.getOffsetY() + event.wheelDeltaY); |
| - this.slideMode_.applyViewportChange(); |
| + this.lastZoom_ = viewport.getZoom(); |
| + var zoom = this.lastZoom_; |
| + if (event.wheelDeltaY > 0) { |
| + zoom = zoom * 1.05; |
| + } else { |
| + zoom = zoom / 1.05; |
| + } |
| + viewport.setZoom(zoom); |
| + this.slideMode_.imageView_.applyViewportChange(); |
| +}; |
| + |
| +/** |
| + * Handles mouse wheel events. |
| + * @param {!Event} event Wheel event. |
| + * @private |
| + */ |
| +TouchHandler.prototype.onMouseWheel_ = function(event) { |
|
hirono
2016/02/06 07:27:59
nit: It looks we have two onMouseWheel_.
ryoh
2016/02/08 04:58:01
Done.
|
| + var event = assertInstanceof(event, MouseEvent); |
| + var viewport = this.slideMode_.getViewport(); |
| + if (!this.enabled_) |
| + return; |
| + |
| + this.stopOperation(); |
| + this.lastZoom_ = viewport.getZoom(); |
| + var zoom = this.lastZoom_; |
| + if (event.wheelDeltaY > 0) { |
| + zoom = zoom * 1.05; |
| + } else { |
| + zoom = zoom / 1.05; |
| + } |
| + viewport.setZoom(zoom); |
| + this.slideMode_.imageView_.applyViewportChange(); |
| }; |
| + |
| +/** |
| + * Handles mouse down events. |
| + * @param {!Event} event Wheel event. |
| + * @private |
| + */ |
| +TouchHandler.prototype.onMouseDown_ = function(event) { |
| + var event = assertInstanceof(event, MouseEvent); |
| + var viewport = this.slideMode_.getViewport(); |
| + if (!this.enabled_) |
| + return; |
| + this.clickStarted_ = true; |
| +} |
| + |
| +/** |
| + * Handles mouse move events. |
| + * @param {!Event} event Wheel event. |
| + * @private |
| + */ |
| +TouchHandler.prototype.onMouseMove_ = function(event) { |
| + var event = assertInstanceof(event, MouseEvent); |
| + var viewport = this.slideMode_.getViewport(); |
| + if (!this.enabled_ || !this.clickStarted_) |
| + return; |
| + viewport.setOffset( |
| + viewport.getOffsetX() + event.movementX, |
| + viewport.getOffsetY() + event.movementY); |
| + this.slideMode_.imageView_.applyViewportChange(); |
| + console.log(event); |
| +} |
| + |
| +/** |
| + * Handles mouse up events. |
| + * @param {!Event} event Wheel event. |
| + * @private |
| + */ |
| +TouchHandler.prototype.onMouseUp_ = function(event) { |
| + this.clickStarted_ = false; |
| +} |