[mutter] keybindings: always acknowledge events to the X server
- From: Alban Crequy <albanc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] keybindings: always acknowledge events to the X server
- Date: Tue, 13 Aug 2013 15:15:56 +0000 (UTC)
commit 8c17b670fb61d2fbfaaf8f47448d0e48bfa7f29e
Author: Alban Crequy <alban crequy collabora co uk>
Date: Mon Aug 5 16:00:32 2013 +0100
keybindings: always acknowledge events to the X server
https://bugzilla.gnome.org/show_bug.cgi?id=666101
src/core/keybindings.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 8439ea8..7f58334 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -1965,6 +1965,23 @@ process_overlay_key (MetaDisplay *display,
return TRUE;
meta_display_overlay_key_activate (display);
}
+ else
+ {
+ /* In some rare race condition, mutter might not receive the Super_L
+ * KeyRelease event because:
+ * - the compositor might end the modal mode and call XIUngrabDevice
+ * while the key is still down
+ * - passive grabs are only activated on KeyPress and not KeyRelease.
+ *
+ * In this case, display->overlay_key_only_pressed might be wrong.
+ * Mutter still ought to acknowledge events, otherwise the X server
+ * will not send the next events.
+ *
+ * https://bugzilla.gnome.org/show_bug.cgi?id=666101
+ */
+ XIAllowEvents (display->xdisplay, event->deviceid,
+ XIAsyncDevice, event->time);
+ }
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]