projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
removed experimental (Windows specific) drag and drop test code
[rocksndiamonds.git]
/
src
/
events.c
diff --git
a/src/events.c
b/src/events.c
index f3330a7ee318ece3e7578f01551a509161c4396f..e770480d67a25c14b0b0e7f0bb3fd57172cba206 100644
(file)
--- a/
src/events.c
+++ b/
src/events.c
@@
-39,6
+39,8
@@
static int cursor_mode_last = CURSOR_DEFAULT;
static unsigned int special_cursor_delay = 0;
static unsigned int special_cursor_delay_value = 1000;
static unsigned int special_cursor_delay = 0;
static unsigned int special_cursor_delay_value = 1000;
+static boolean virtual_button_pressed = FALSE;
+
// forward declarations for internal use
static void HandleNoEvent(void);
// forward declarations for internal use
static void HandleNoEvent(void);
@@
-266,10
+268,6
@@
void HandleOtherEvents(Event *event)
HandleJoystickEvent(event);
break;
HandleJoystickEvent(event);
break;
- case SDL_SYSWMEVENT:
- HandleWindowManagerEvent(event);
- break;
-
default:
break;
}
default:
break;
}
@@
-722,6
+720,8
@@
static void HandleFingerEvent_VirtualButtons(FingerEvent *event)
"KEY_PRESSED");
int i;
"KEY_PRESSED");
int i;
+ virtual_button_pressed = (key_status == KEY_PRESSED && key != KSYM_UNDEFINED);
+
// for any touch input event, enable overlay buttons (if activated)
SetOverlayEnabled(TRUE);
// for any touch input event, enable overlay buttons (if activated)
SetOverlayEnabled(TRUE);
@@
-1518,11
+1518,6
@@
void HandleClientMessageEvent(ClientMessageEvent *event)
CloseAllAndExit(0);
}
CloseAllAndExit(0);
}
-void HandleWindowManagerEvent(Event *event)
-{
- SDLHandleWindowManagerEvent(event);
-}
-
void HandleButton(int mx, int my, int button, int button_nr)
{
static int old_mx = 0, old_my = 0;
void HandleButton(int mx, int my, int button, int button_nr)
{
static int old_mx = 0, old_my = 0;
@@
-1545,10
+1540,13
@@
void HandleButton(int mx, int my, int button, int button_nr)
#if defined(PLATFORM_ANDROID)
// when playing, only handle gadgets when using "follow finger" controls
// or when using touch controls in combination with the MM game engine
#if defined(PLATFORM_ANDROID)
// when playing, only handle gadgets when using "follow finger" controls
// or when using touch controls in combination with the MM game engine
+ // or when using gadgets that do not overlap with virtual buttons
handle_gadgets =
(game_status != GAME_MODE_PLAYING ||
level.game_engine_type == GAME_ENGINE_TYPE_MM ||
handle_gadgets =
(game_status != GAME_MODE_PLAYING ||
level.game_engine_type == GAME_ENGINE_TYPE_MM ||
- strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER));
+ strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER) ||
+ (strEqual(setup.touch.control_type, TOUCH_CONTROL_VIRTUAL_BUTTONS) &&
+ !virtual_button_pressed));
#endif
if (HandleGlobalAnimClicks(mx, my, button))
#endif
if (HandleGlobalAnimClicks(mx, my, button))
@@
-1842,9
+1840,9
@@
boolean HandleKeysDebug(Key key, int key_status)
return TRUE;
}
}
return TRUE;
}
}
+#endif
return FALSE;
return FALSE;
-#endif
}
void HandleKey(Key key, int key_status)
}
void HandleKey(Key key, int key_status)
@@
-2353,6
+2351,16
@@
void HandleJoystick(void)
return;
}
return;
}
+ if (newbutton && (game_status == GAME_MODE_PSEUDO_TYPENAME ||
+ anyTextGadgetActive()))
+ {
+ // leave name input in main menu or text input gadget
+ HandleKey(KSYM_Escape, KEY_PRESSED);
+ HandleKey(KSYM_Escape, KEY_RELEASED);
+
+ return;
+ }
+
if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
{
if (game_status == GAME_MODE_PLAYING)
if (level.game_engine_type == GAME_ENGINE_TYPE_MM)
{
if (game_status == GAME_MODE_PLAYING)