Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Unified Diff: samples/o3d-webgl/client.js

Issue 2456004: Adding zoom on scrollwheel event to Pool demo. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « samples/o3d-webgl-samples/texturesamplers.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: samples/o3d-webgl/client.js
===================================================================
--- samples/o3d-webgl/client.js (revision 49133)
+++ samples/o3d-webgl/client.js (working copy)
@@ -840,17 +840,23 @@
* Wraps a user's event callback with one that properly computes
* relative coordinates for the event.
* @param {!o3d.EventCallback} handler Function to call on event.
+ * @param {boolean} doCancelEvent If event should be canceled after callback.
* @return {!o3d.EventCallback} Wrapped handler function.
* @private
*/
-o3d.Client.wrapEventCallback_ = function(handler) {
+o3d.Client.wrapEventCallback_ = function(handler, doCancelEvent) {
return function(event) {
event = o3d.Client.getEvent_(event);
var info = o3d.Client.getEventInfo_(event);
var relativeCoords = o3d.Client.getRelativeCoordinates_(info);
event.x = relativeCoords.x;
event.y = relativeCoords.y;
+ // Invert value to meet contract for deltaY. @see event.js.
+ event.deltaY = -info.wheel;
handler(event);
+ if (doCancelEvent) {
+ o3djs.event.cancel(event);
+ }
};
};
@@ -869,13 +875,20 @@
var listener = this.gl.hack_canvas;
// TODO(petersont): Figure out a way for a canvas to listen to a key event
// directly.
+
+ var isWheelEvent = type == 'wheel';
var forKeyEvent = type.substr(0, 3) == 'key';
if (forKeyEvent) {
listener = document;
} else {
- handler = o3d.Client.wrapEventCallback_(handler);
+ handler = o3d.Client.wrapEventCallback_(handler, isWheelEvent);
}
- listener.addEventListener(type, handler, true);
+ if (isWheelEvent) {
+ listener.addEventListener('DOMMouseScroll', handler, true);
+ listener.addEventListener('mousewheel', handler, true);
+ } else {
+ listener.addEventListener(type, handler, true);
+ }
};
@@ -885,11 +898,21 @@
*/
o3d.Client.prototype.clearEventCallback =
function(type) {
+ //TODO(petersont): Same as TODO in setEventCallback above.
+ var listener = this.gl.hack_canvas;
+
+ var isWheelEvent = type == 'wheel';
var forKeyEvent = type.substr(0, 3) == 'key';
if (forKeyEvent) {
listener = document;
}
- listener.removeEventListener(type);
+
+ if (isWheelEvent) {
+ listener.removeEventListener('DOMMouseScroll');
+ listener.removeEventListener('mousewheel');
+ } else {
+ listener.removeEventListener(type);
+ }
};
« no previous file with comments | « samples/o3d-webgl-samples/texturesamplers.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698