diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-13 23:30:52 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-13 23:30:52 +0000 |
| commit | 9fcb2aa1d25ec9889b45d145939fb17160b1106a (patch) | |
| tree | b8ca781c16f637cf12cce61cd4aa7b38b9e1b9e9 /openbox/grab.c | |
| parent | 627125a6c6e6728de98aa813e353ec75bab7b54c (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.c | 13 |
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)); } |
