From: Toni Wilen Date: Sat, 25 Feb 2017 16:00:07 +0000 (+0200) Subject: Reset key/button press state when device is released. X-Git-Tag: 3500~94 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=d15feaeff7bd72b635455a65ca5fc5e71aed5cd1;p=francis%2Fwinuae.git Reset key/button press state when device is released. --- diff --git a/inputdevice.cpp b/inputdevice.cpp index 4cf32289..59bd1bb1 100644 --- a/inputdevice.cpp +++ b/inputdevice.cpp @@ -8067,6 +8067,14 @@ void inputdevice_copy_single_config (struct uae_prefs *p, int src, int dst, int } } +static void clearpressmask(void) +{ + for (int i = 0; i < MAX_INPUT_DEVICES; i++) { + joysticks2[i].buttonmask = 0; + mice2[i].buttonmask = 0; + } +} + void inputdevice_acquire (int allmode) { int i; @@ -8094,12 +8102,15 @@ void inputdevice_acquire (int allmode) idev[IDTYPE_KEYBOARD].acquire (i, allmode < 0); } + clearpressmask(); + if (input_acquired) return; idev[IDTYPE_JOYSTICK].acquire (-1, 0); idev[IDTYPE_MOUSE].acquire (-1, 0); idev[IDTYPE_KEYBOARD].acquire (-1, 0); + // if (!input_acquired) // write_log (_T("input devices acquired (%s)\n"), allmode ? "all" : "selected only"); input_acquired = 1; @@ -8138,6 +8149,8 @@ void inputdevice_unacquire(bool emulationactive, int inputmask) idev[IDTYPE_MOUSE].unacquire(-1); if (!(inputmask & 1)) idev[IDTYPE_KEYBOARD].unacquire(-1); + + clearpressmask(); } void inputdevice_unacquire(void)