diff --git a/ChangeLog b/ChangeLog index b2264d8b4..3924d6a4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -Tue Jan 21 01:15:14 2003 Jonathan Blandford +Tue Jan 21 13:20:00 2003 Bill Haneman + + * gnoome-settings-daemon/gnome-settings-mouse.c: + (set_locate_pointer): Change the AnyModifier passive grab + of the Control keys to grabs on no modifier and on + LockModifier. [Fix for bugzilla 104058.] + +Tue Jan 21 01:15:14 2003 Jonathan Blandford * Release 2.2.0 diff --git a/gnome-settings-daemon/gnome-settings-mouse.c b/gnome-settings-daemon/gnome-settings-mouse.c index a1b7ff92d..b7a5813d6 100644 --- a/gnome-settings-daemon/gnome-settings-mouse.c +++ b/gnome-settings-daemon/gnome-settings-mouse.c @@ -170,26 +170,41 @@ set_locate_pointer (gboolean locate_pointer) gint i; for (i = 0; i < n_keys; i++) - { - if (locate_pointer) - XGrabKey (gdk_x11_get_default_xdisplay (), - keys[i].keycode, - AnyModifier, - GDK_ROOT_WINDOW (), - False, - GrabModeAsync, - GrabModeSync); - else - XUngrabKey (gdk_x11_get_default_xdisplay (), - keys[i].keycode, - AnyModifier, - GDK_ROOT_WINDOW ()); - } - g_free (keys); - if (locate_pointer) - gdk_window_add_filter (gdk_get_default_root_window (), filter, NULL); - else - gdk_window_remove_filter (gdk_get_default_root_window (), filter, NULL); + { + if (locate_pointer) + { + XGrabKey (gdk_x11_get_default_xdisplay (), + keys[i].keycode, + 0, + GDK_ROOT_WINDOW (), + False, + GrabModeAsync, + GrabModeSync); + XGrabKey (gdk_x11_get_default_xdisplay (), + keys[i].keycode, + LockMask, + GDK_ROOT_WINDOW (), + False, + GrabModeAsync, + GrabModeSync); + } + else + { + XUngrabKey (gdk_x11_get_default_xdisplay (), + keys[i].keycode, + LockMask, + GDK_ROOT_WINDOW ()); + XUngrabKey (gdk_x11_get_default_xdisplay (), + keys[i].keycode, + 0, + GDK_ROOT_WINDOW ()); + } + } + g_free (keys); + if (locate_pointer) + gdk_window_add_filter (gdk_get_default_root_window (), filter, NULL); + else + gdk_window_remove_filter (gdk_get_default_root_window (), filter, NULL); } } }