Sfoglia il codice sorgente

fixed hlsdl right click handling

Nicolas Cannasse 8 anni fa
parent
commit
e9e450a398
2 ha cambiato i file con 15 aggiunte e 4 eliminazioni
  1. 2 2
      hxd/Key.hx
  2. 13 2
      hxd/System.hx

+ 2 - 2
hxd/Key.hx

@@ -169,9 +169,9 @@ class Key {
 		case EKeyUp:
 			keyPressed[e.keyCode] = -getFrame();
 		case EPush:
-			keyPressed[e.button] = getFrame();
+			if( e.button < 2 ) keyPressed[e.button] = getFrame();
 		case ERelease:
-			keyPressed[e.button] = -getFrame();
+			if( e.button < 2 ) keyPressed[e.button] = -getFrame();
 		case EWheel:
 			keyPressed[e.wheelDelta > 0 ? MOUSE_WHEEL_DOWN : MOUSE_WHEEL_UP] = getFrame();
 		default:

+ 13 - 2
hxd/System.hx

@@ -553,12 +553,23 @@ class System {
 			mouseX = e.mouseX;
 			mouseY = e.mouseY;
 			eh = new Event(EPush, e.mouseX, e.mouseY);
-			eh.button = e.button - 1;
+			// middle button -> 2 / right button -> 1
+			eh.button = switch( e.button - 1 ) {
+			case 0: 0;
+			case 1: 2;
+			case 2: 1;
+			case x: x;
+			}
 		case MouseUp:
 			mouseX = e.mouseX;
 			mouseY = e.mouseY;
 			eh = new Event(ERelease, e.mouseX, e.mouseY);
-			eh.button = e.button - 1;
+			eh.button = switch( e.button - 1 ) {
+			case 0: 0;
+			case 1: 2;
+			case 2: 1;
+			case x: x;
+			};
 		case MouseMove:
 			mouseX = e.mouseX;
 			mouseY = e.mouseY;