added event actions (by simulating keyboard input) for global animations
[rocksndiamonds.git] / src / events.c
index b21f3706fef27c21a7d176820c7a117733aa0066..0e899a5b8f6f9836eff53d7117c8bbe8545b5aec 100644 (file)
@@ -1554,16 +1554,16 @@ void HandleButton(int mx, int my, int button, int button_nr)
      strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER));
 #endif
 
-  if (handle_gadgets && HandleGadgets(mx, my, button))
+  if (HandleGlobalAnimClicks(mx, my, button))
   {
     /* do not handle this button event anymore */
-    mx = my = -32;     /* force mouse event to be outside screen tiles */
+    return;            /* force mouse event not to be handled at all */
   }
 
-  if (HandleGlobalAnimClicks(mx, my, button))
+  if (handle_gadgets && HandleGadgets(mx, my, button))
   {
     /* do not handle this button event anymore */
-    return;            /* force mouse event not to be handled at all */
+    mx = my = -32;     /* force mouse event to be outside screen tiles */
   }
 
   if (button_hold && game_status == GAME_MODE_PLAYING && tape.pausing)
@@ -2496,3 +2496,18 @@ void HandleSpecialGameControllerKeys(Key key, int key_status)
 #endif
 #endif
 }
+
+boolean DoKeysymAction(int keysym)
+{
+  if (keysym < 0)
+  {
+    Key key = (Key)(-keysym);
+
+    HandleKey(key, KEY_PRESSED);
+    HandleKey(key, KEY_RELEASED);
+
+    return TRUE;
+  }
+
+  return FALSE;
+}