summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Becker <sylvain.becker@gmail.com>2019-04-05 08:36:31 +0200
committerSylvain Becker <sylvain.becker@gmail.com>2019-04-05 08:36:31 +0200
commitc5078bff167cf4adee8546144a1431f898b0b2c6 (patch)
tree4da45d84f8654abf455c9463fcd5b70b3b20bbf3
parent4b77e11c847d1bbf1795f87e546efddb9932ec54 (diff)
Android: default SDL_HINT_MOUSE_TOUCH_EVENTS to 1 as previous behaviour
-rw-r--r--WhatsNew.txt3
-rw-r--r--include/SDL_hints.h1
-rw-r--r--src/events/SDL_mouse.c16
3 files changed, 15 insertions, 5 deletions
diff --git a/WhatsNew.txt b/WhatsNew.txt
index 95cb4425aa..34860cb159 100644
--- a/WhatsNew.txt
+++ b/WhatsNew.txt
@@ -8,7 +8,8 @@ This is a list of major changes in SDL's version history.
Android:
* Removed SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH (replaced by SDL_HINT_MOUSE_TOUCH_EVENTS and SDL_HINT_TOUCH_MOUSE_EVENTS)
- (Changed old default behavior from hardware mouse triggering touch events to now not doing so (SDL_MOUSE_TOUCH_EVENTS=0) to match the default behavior of other platforms")
+ SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH=1, should be replaced by setting both previous hints to 0.
+ SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH=0, should be replaced by setting both previous hints to 1.
---------------------------------------------------------------------------
diff --git a/include/SDL_hints.h b/include/SDL_hints.h
index 8cbcc3e204..20d510be3e 100644
--- a/include/SDL_hints.h
+++ b/include/SDL_hints.h
@@ -323,6 +323,7 @@ extern "C" {
* "1" - Mouse events will generate touch events
*
* By default SDL will *not* generate touch events for mouse events
+ * Except for Android, they are generated by default.
*/
#define SDL_HINT_MOUSE_TOUCH_EVENTS "SDL_MOUSE_TOUCH_EVENTS"
diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c
index 893ecc72bd..ca92f2f4b3 100644
--- a/src/events/SDL_mouse.c
+++ b/src/events/SDL_mouse.c
@@ -112,14 +112,22 @@ SDL_MouseTouchEventsChanged(void *userdata, const char *name, const char *oldVal
{
SDL_Mouse *mouse = (SDL_Mouse *)userdata;
- if (hint && (*hint == '1' || SDL_strcasecmp(hint, "true") == 0)) {
-
- SDL_AddTouch(SDL_MOUSE_TOUCHID, SDL_TOUCH_DEVICE_DIRECT, "mouse_input");
-
+ if (hint == NULL || *hint == '\0') {
+ /* Default */
+#if defined(__ANDROID__)
+ mouse->mouse_touch_events = SDL_TRUE;
+#else
+ mouse->mouse_touch_events = SDL_FALSE;
+#endif
+ } else if (*hint == '1' || SDL_strcasecmp(hint, "true") == 0) {
mouse->mouse_touch_events = SDL_TRUE;
} else {
mouse->mouse_touch_events = SDL_FALSE;
}
+
+ if (mouse->mouse_touch_events) {
+ SDL_AddTouch(SDL_MOUSE_TOUCHID, SDL_TOUCH_DEVICE_DIRECT, "mouse_input");
+ }
}
/* Public functions */