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; |
+} |