summaryrefslogtreecommitdiff
path: root/openbox/grab.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-13 23:30:52 +0000
committerDana Jansens <danakj@orodu.net>2007-05-13 23:30:52 +0000
commit9fcb2aa1d25ec9889b45d145939fb17160b1106a (patch)
treeb8ca781c16f637cf12cce61cd4aa7b38b9e1b9e9 /openbox/grab.c
parent627125a6c6e6728de98aa813e353ec75bab7b54c (diff)
add grab/ungrab macros so dont need to pass in 10 arguments to ungrab stuff.
add a confine option to grab_pointer to confine the pointer to the screen, and use that for moveresize
Diffstat (limited to 'openbox/grab.c')
-rw-r--r--openbox/grab.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/openbox/grab.c b/openbox/grab.c
index b6a7a939..ac91a6bc 100644
--- a/openbox/grab.c
+++ b/openbox/grab.c
@@ -67,7 +67,7 @@ gboolean grab_on_pointer()
return pgrabs > 0;
}
-gboolean grab_keyboard(gboolean grab)
+gboolean grab_keyboard_full(gboolean grab)
{
gboolean ret = FALSE;
@@ -92,7 +92,8 @@ gboolean grab_keyboard(gboolean grab)
return ret;
}
-gboolean grab_pointer(gboolean grab, gboolean owner_events, ObCursor cur)
+gboolean grab_pointer_full(gboolean grab, gboolean owner_events,
+ gboolean confine, ObCursor cur)
{
gboolean ret = FALSE;
@@ -100,7 +101,9 @@ gboolean grab_pointer(gboolean grab, gboolean owner_events, ObCursor cur)
if (pgrabs++ == 0) {
ret = XGrabPointer(ob_display, screen_support_win, owner_events,
GRAB_PTR_MASK,
- GrabModeAsync, GrabModeAsync, None,
+ GrabModeAsync, GrabModeAsync,
+ (confine ? RootWindow(ob_display, ob_screen) :
+ None),
ob_cursor(cur), event_curtime) == Success;
if (!ret)
--pgrabs;
@@ -158,8 +161,8 @@ void grab_shutdown(gboolean reconfig)
{
if (reconfig) return;
- while (grab_keyboard(FALSE));
- while (grab_pointer(FALSE, FALSE, OB_CURSOR_NONE));
+ while (ungrab_keyboard());
+ while (ungrab_pointer());
while (grab_server(FALSE));
}