You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2017/08/08 21:15:43 UTC

[07/50] git commit: [flex-asjs] [refs/heads/feature/strand-work] - Added delta, deltaX and deltaY for mouse wheel events Needs tests

Added delta, deltaX and deltaY for mouse wheel events
Needs tests


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/0d9fe0cc
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/0d9fe0cc
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/0d9fe0cc

Branch: refs/heads/feature/strand-work
Commit: 0d9fe0ccf79f14212d14f7ac59aa958894c45520
Parents: c166120
Author: Harbs <ha...@in-tools.com>
Authored: Wed Jul 26 19:24:03 2017 +0300
Committer: Harbs <ha...@in-tools.com>
Committed: Wed Jul 26 19:24:03 2017 +0300

----------------------------------------------------------------------
 .../org/apache/flex/events/KeyboardEvent.as     |   9 +-
 .../flex/org/apache/flex/events/MouseEvent.as   | 110 +++++++++++++++++--
 2 files changed, 111 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d9fe0cc/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as
index 71b4dd1..b3992d4 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as
@@ -43,10 +43,17 @@ package org.apache.flex.events
         COMPILE::JS
 		private var wrappedEvent:Object;
 
+		/**
+		 * @type {KeyboardEvent}
+		 */
+        COMPILE::JS
+		private var nativeEvent:Object;
+
         COMPILE::JS
 		public function wrapEvent(event:goog.events.BrowserEvent):void
         {
             wrappedEvent = event;
+            nativeEvent = event.getBrowserEvent();
         }
 
         public function KeyboardEvent(
@@ -194,7 +201,7 @@ package org.apache.flex.events
             if(wrappedEvent)
             {
 			    wrappedEvent.stopPropagation();
-			    wrappedEvent.getBrowserEvent().stopImmediatePropagation();
+			    nativeEvent.stopImmediatePropagation();
             }
 		}
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d9fe0cc/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
index 14a3af7..d35ade7 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
@@ -151,7 +151,44 @@ package org.apache.flex.events
         {
             return cloneEvent() as flash.events.Event;
         }
-        
+		/**
+         *  The horizontal scroll delta for wheel events
+		 *  In Flash this always returns 0.
+         *
+         * @langversion 3.0
+         * @playerversion Flash 10.2
+         * @playerversion AIR 2.6
+         * @productversion FlexJS 0.9
+		 */
+		public function get deltaX():int
+		{
+			return 0;
+		}
+		/**
+		 * Horizontal wheel events are not supported in Flash
+		 */
+		public function set deltaX(value:int):void
+		{
+			
+		}
+
+		/**
+         *  The vertical scroll delta for wheel events
+		 *  In Flash this just proxies to the delta
+         *
+         * @langversion 3.0
+         * @playerversion Flash 10.2
+         * @playerversion AIR 2.6
+         * @productversion FlexJS 0.9
+		 */
+		public function get deltaY():int
+		{
+			return delta
+		}
+		public function set deltaY(value:int):void
+		{
+			delta = value;
+		}        
         /**
          * Create a copy/clone of the Event object.
          *
@@ -261,10 +298,16 @@ package org.apache.flex.events
 		 * @type {?goog.events.BrowserEvent}
 		 */
 		private var wrappedEvent:Object;
+		
+		/**
+		 * @type {MouseEvent}
+		 */
+		private var nativeEvent:Object;
 
 		public function wrapEvent(event:goog.events.BrowserEvent):void
         {
             wrappedEvent = event;
+			nativeEvent = event.getBrowserEvent();
         }
 
 		public var relatedObject:Object;
@@ -278,12 +321,11 @@ package org.apache.flex.events
 				return _buttons == 1;
 			if(!wrappedEvent)
 				return false;
-			var ev:* = wrappedEvent.getBrowserEvent();
 			//Safari does not yet support buttons
-			if ('buttons' in ev)
-				_buttons = ev["buttons"];
+			if ('buttons' in nativeEvent)
+				_buttons = nativeEvent["buttons"];
 			else
-				_buttons = ev["which"];
+				_buttons = nativeEvent["which"];
 			return _buttons == 1;
 		}
 		public function set buttonDown(value:Boolean):void
@@ -299,7 +341,61 @@ package org.apache.flex.events
 		{
 			_buttons = value;
 		}
-		public var delta:int;
+
+		private var _delta:int;
+		/**
+         *  The vertical scroll delta for wheel events
+         *
+         * @langversion 3.0
+         * @playerversion Flash 10.2
+         * @playerversion AIR 2.6
+         * @productversion FlexJS 0.9
+		 */
+		public function get delta():int
+		{
+			return nativeEvent ? nativeEvent.deltaY : _delta;
+		}
+		public function set delta(value:int):void
+		{
+			_delta = value;
+		}
+
+		private var _deltaX:int;
+		/**
+         *  The horizontal scroll delta for wheel events
+         *
+         * @langversion 3.0
+         * @playerversion Flash 10.2
+         * @playerversion AIR 2.6
+         * @productversion FlexJS 0.9
+		 */
+		public function get deltaX():int
+		{
+			return nativeEvent ? nativeEvent.deltaX : _deltaX;
+		}
+		public function set deltaX(value:int):void
+		{
+			_deltaX = value;
+		}
+
+		private var _deltaY:int;
+		/**
+         *  The vertical scroll delta for wheel events
+         *
+         * @langversion 3.0
+         * @playerversion Flash 10.2
+         * @playerversion AIR 2.6
+         * @productversion FlexJS 0.9
+		 */
+		public function get deltaY():int
+		{
+			return nativeEvent ? nativeEvent.deltaY : _deltaY;
+		}
+		public function set deltaY(value:int):void
+		{
+			_deltaY = value;
+		}
+		
 		public var commandKey:Boolean;
 		public var controlKey:Boolean;
 		public var clickCount:int;
@@ -606,7 +702,7 @@ package org.apache.flex.events
             if(wrappedEvent)
             {
 			    wrappedEvent.stopPropagation();
-			    wrappedEvent.getBrowserEvent().stopImmediatePropagation();
+			    nativeEvent.stopImmediatePropagation();
             }
 		}