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>
* Release 2.1.7

View file

@ -121,7 +121,7 @@ filter (GdkXEvent *xevent,
group,
&keyval,
NULL, NULL, NULL);
if (keyval == GDK_Control_L)
if (keyval == GDK_Control_L || keyval == GDK_Control_R)
{
if (xev->type == KeyPress)
{
@ -157,37 +157,41 @@ set_locate_pointer (gboolean locate_pointer)
GdkKeymapKey *keys;
int n_keys;
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 (),
GDK_Control_L,
&keys,
&n_keys);
if (has_entries)
for (j = 0 ; j < G_N_ELEMENTS (keyvals) ; j++) {
has_entries = gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
keyvals[j],
&keys,
&n_keys);
if (has_entries)
{
gint i;
for (i = 0; i < n_keys; i++)
{
if (locate_pointer)
XGrabKey (gdk_x11_get_default_xdisplay (),
{
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);
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);
}
}
}
static void