diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 220771b152..363193ab26 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -2281,6 +2281,14 @@ gdk_event_translate (MSG *msg, in_ime_composition) break; + /* Ignore autorepeats on modifiers */ + if (msg->message == WM_KEYDOWN && + (msg->wParam == VK_MENU || + msg->wParam == VK_CONTROL || + msg->wParam == VK_SHIFT) && + ((HIWORD(msg->lParam) & KF_REPEAT) >= 1)) + break; + if (keyboard_grab && !propagate (&window, msg, keyboard_grab->window,