make the right control key also locate the mouse pointer. Fixes #87426

2003-01-19  Alex Duggan  <aldug@astrolinux.com>

	* gnome-settings-mouse.c (filter), (set_locate_pointer):
	make the right control key also locate the mouse pointer.
	Fixes #87426
This commit is contained in:
Alex Duggan 2003-01-20 03:12:33 +00:00 committed by Alex Duggan
parent dbc03d51c7
commit 7e699e6b22
2 changed files with 30 additions and 20 deletions

View file

@ -1,3 +1,9 @@
2003-01-19 Alex Duggan <aldug@astrolinux.com>
* gnome-settings-mouse.c (filter), (set_locate_pointer):
make the right control key also locate the mouse pointer.
Fixes #87426
Thu Jan 16 02:41:09 2003 Jonathan Blandford <jrb@gnome.org> Thu Jan 16 02:41:09 2003 Jonathan Blandford <jrb@gnome.org>
* Release 2.1.7 * Release 2.1.7

View file

@ -121,7 +121,7 @@ filter (GdkXEvent *xevent,
group, group,
&keyval, &keyval,
NULL, NULL, NULL); NULL, NULL, NULL);
if (keyval == GDK_Control_L) if (keyval == GDK_Control_L || keyval == GDK_Control_R)
{ {
if (xev->type == KeyPress) if (xev->type == KeyPress)
{ {
@ -157,37 +157,41 @@ set_locate_pointer (gboolean locate_pointer)
GdkKeymapKey *keys; GdkKeymapKey *keys;
int n_keys; int n_keys;
gboolean has_entries; gboolean has_entries;
static const guint keyvals[] = { GDK_Control_L, GDK_Control_R };
unsigned j;
has_entries = gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (), for (j = 0 ; j < G_N_ELEMENTS (keyvals) ; j++) {
GDK_Control_L, has_entries = gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
&keys, keyvals[j],
&n_keys); &keys,
if (has_entries) &n_keys);
if (has_entries)
{ {
gint i; gint i;
for (i = 0; i < n_keys; i++) for (i = 0; i < n_keys; i++)
{ {
if (locate_pointer) if (locate_pointer)
XGrabKey (gdk_x11_get_default_xdisplay (), XGrabKey (gdk_x11_get_default_xdisplay (),
keys[i].keycode, keys[i].keycode,
AnyModifier, AnyModifier,
GDK_ROOT_WINDOW (), GDK_ROOT_WINDOW (),
False, False,
GrabModeAsync, GrabModeAsync,
GrabModeSync); GrabModeSync);
else else
XUngrabKey (gdk_x11_get_default_xdisplay (), XUngrabKey (gdk_x11_get_default_xdisplay (),
keys[i].keycode, keys[i].keycode,
AnyModifier, AnyModifier,
GDK_ROOT_WINDOW ()); GDK_ROOT_WINDOW ());
} }
g_free (keys); g_free (keys);
if (locate_pointer) if (locate_pointer)
gdk_window_add_filter (gdk_get_default_root_window (), filter, NULL); gdk_window_add_filter (gdk_get_default_root_window (), filter, NULL);
else else
gdk_window_remove_filter (gdk_get_default_root_window (), filter, NULL); gdk_window_remove_filter (gdk_get_default_root_window (), filter, NULL);
} }
}
} }
static void static void