]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Reset key/button press state when device is released.
authorToni Wilen <twilen@winuae.net>
Sat, 25 Feb 2017 16:00:07 +0000 (18:00 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 25 Feb 2017 16:00:07 +0000 (18:00 +0200)
inputdevice.cpp

index 4cf32289fe71b091ca593602546fe5c6c1873d18..59bd1bb10f227137568b78e9a1a70322afc5a7d7 100644 (file)
@@ -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)