allow the usage of Escape together with CapsLock, NumLock and ScrollLock.

2006-06-29  Raphael Quinet  <raphael@gimp.org>

	* plug-ins/common/screenshot.c (select_window_x11): allow the
	usage of Escape together with CapsLock, NumLock and ScrollLock.
This commit is contained in:
Raphael Quinet 2006-06-29 09:29:23 +00:00 committed by Raphaël Quinet
parent ad56ef1e0e
commit f8e16bb2d4
2 changed files with 35 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2006-06-29 Raphaël Quinet <raphael@gimp.org>
* plug-ins/common/screenshot.c (select_window_x11): allow the
usage of Escape together with CapsLock, NumLock and ScrollLock.
2006-06-29 Raphaël Quinet <raphael@gimp.org>
* plug-ins/common/screenshot.c (select_window_x11): use 0 instead

View File

@ -443,6 +443,27 @@ select_window_x11 (GdkScreen *screen)
gdk_error_trap_push ();
XGrabKey (x_dpy, keys[0].keycode, 0, x_root, False,
GrabModeAsync, GrabModeAsync);
/* CapsLock */
XGrabKey (x_dpy, keys[0].keycode, LockMask, x_root, False,
GrabModeAsync, GrabModeAsync);
/* NumLock */
XGrabKey (x_dpy, keys[0].keycode, Mod2Mask, x_root, False,
GrabModeAsync, GrabModeAsync);
/* ScrollLock */
XGrabKey (x_dpy, keys[0].keycode, Mod5Mask, x_root, False,
GrabModeAsync, GrabModeAsync);
/* CapsLock + NumLock */
XGrabKey (x_dpy, keys[0].keycode, LockMask | Mod2Mask, x_root, False,
GrabModeAsync, GrabModeAsync);
/* CapsLock + ScrollLock */
XGrabKey (x_dpy, keys[0].keycode, LockMask | Mod5Mask, x_root, False,
GrabModeAsync, GrabModeAsync);
/* NumLock + ScrollLock */
XGrabKey (x_dpy, keys[0].keycode, Mod2Mask | Mod5Mask, x_root, False,
GrabModeAsync, GrabModeAsync);
/* CapsLock + NumLock + ScrollLock */
XGrabKey (x_dpy, keys[0].keycode, LockMask | Mod2Mask | Mod5Mask, x_root,
False, GrabModeAsync, GrabModeAsync);
gdk_flush ();
gdk_error_trap_pop ();
}
@ -541,7 +562,15 @@ select_window_x11 (GdkScreen *screen)
if (keys)
{
XUngrabKey (x_dpy, keys[0].keycode, AnyModifier, x_root);
XUngrabKey (x_dpy, keys[0].keycode, 0, x_root);
XUngrabKey (x_dpy, keys[0].keycode, LockMask, x_root);
XUngrabKey (x_dpy, keys[0].keycode, Mod2Mask, x_root);
XUngrabKey (x_dpy, keys[0].keycode, Mod5Mask, x_root);
XUngrabKey (x_dpy, keys[0].keycode, LockMask | Mod2Mask, x_root);
XUngrabKey (x_dpy, keys[0].keycode, LockMask | Mod5Mask, x_root);
XUngrabKey (x_dpy, keys[0].keycode, Mod2Mask | Mod5Mask, x_root);
XUngrabKey (x_dpy, keys[0].keycode, LockMask | Mod2Mask | Mod5Mask,
x_root);
g_free (keys);
}