mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-24 00:54:18 +08:00
fix a bug: must reset olddownkey to zero when got a KEYUP event
This commit is contained in:
+22
-1
@@ -348,7 +348,7 @@ BOOL kernel_GetLWEvent (int event, PLWEVENT lwe)
|
||||
}
|
||||
|
||||
timeout_count = __mg_tick_counter + timeout_threshold;
|
||||
// There was a event occurred.
|
||||
// There was an event occurred.
|
||||
if (event & IAL_MOUSEEVENT) {
|
||||
if (!IAL_UpdateMouse ())
|
||||
return 0;
|
||||
@@ -459,6 +459,7 @@ BOOL kernel_GetLWEvent (int event, PLWEVENT lwe)
|
||||
#endif
|
||||
ke->event = KE_KEYUP;
|
||||
ke->scancode = i;
|
||||
olddownkey = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -577,6 +578,15 @@ BOOL kernel_GetLWEvent (int event, PLWEVENT lwe)
|
||||
memcpy (oldkeystate, keystate, nr_keys);
|
||||
#endif
|
||||
memcpy (&old_lwe, lwe, sizeof (LWEVENT));
|
||||
if (old_lwe.type == LWETYPE_MOUSE) {
|
||||
_WRN_PRINTF ("old low level event type reset to mouse\n");
|
||||
}
|
||||
else if (old_lwe.type == LWETYPE_KEY) {
|
||||
_WRN_PRINTF ("old low level event type reset to key\n");
|
||||
}
|
||||
else {
|
||||
_WRN_PRINTF ("old low level event type reset to none\n");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -597,6 +607,16 @@ mouseret:
|
||||
SHAREDRES_SHIFTSTATUS = status;
|
||||
#endif
|
||||
memcpy (&old_lwe, lwe, sizeof (LWEVENT));
|
||||
|
||||
if (old_lwe.type == LWETYPE_MOUSE) {
|
||||
_WRN_PRINTF ("old low level event type reset to mouse\n");
|
||||
}
|
||||
else if (old_lwe.type == LWETYPE_KEY) {
|
||||
_WRN_PRINTF ("old low level event type reset to key\n");
|
||||
}
|
||||
else {
|
||||
_WRN_PRINTF ("old low level event type reset to none\n");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -765,6 +785,7 @@ BOOL kernel_GetLWEvent (int event, PLWEVENT lwe)
|
||||
if(oldkeystate[i] && !keystate[i]) {
|
||||
ke->event = KE_KEYUP;
|
||||
ke->scancode = i;
|
||||
olddownkey = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user