static Time ungrab_time()
{
Time t = event_curtime;
- if (!(t == 0 || event_time_after(t, grab_time)))
+ if (!(t == CurrentTime || event_time_after(t, grab_time)))
/* When the time moves backward on the server, then we can't use
the grab time because that will be in the future. So instead we
have to use CurrentTime.
if (grab) {
if (kgrabs++ == 0) {
ret = XGrabKeyboard(ob_display, RootWindow(ob_display, ob_screen),
- FALSE, GrabModeAsync, GrabModeAsync,
+ False, GrabModeAsync, GrabModeAsync,
event_curtime) == Success;
if (!ret)
--kgrabs;
return ret;
}
-gboolean grab_pointer(gboolean grab, ObCursor cur)
+gboolean grab_pointer(gboolean grab, gboolean owner_events, ObCursor cur)
{
gboolean ret = FALSE;
if (grab) {
if (pgrabs++ == 0) {
- ret = XGrabPointer(ob_display, screen_support_win,
- False, GRAB_PTR_MASK, GrabModeAsync,
- GrabModeAsync, None,
+ ret = XGrabPointer(ob_display, screen_support_win, owner_events,
+ GRAB_PTR_MASK,
+ GrabModeAsync, GrabModeAsync, None,
ob_cursor(cur), event_curtime) == Success;
if (!ret)
--pgrabs;
return ret;
}
-gboolean grab_pointer_window(gboolean grab, ObCursor cur, Window win)
+gboolean grab_pointer_window(gboolean grab, gboolean owner_events,
+ ObCursor cur, Window win)
{
gboolean ret = FALSE;
if (grab) {
if (pgrabs++ == 0) {
- ret = XGrabPointer(ob_display, win, False, GRAB_PTR_MASK,
+ ret = XGrabPointer(ob_display, win, owner_events,
+ GRAB_PTR_MASK,
GrabModeAsync, GrabModeAsync, None,
ob_cursor(cur),
event_curtime) == Success;
if (reconfig) return;
while (grab_keyboard(FALSE));
- while (grab_pointer(FALSE, OB_CURSOR_NONE));
- while (grab_pointer_window(FALSE, OB_CURSOR_NONE, None));
+ while (grab_pointer(FALSE, FALSE, OB_CURSOR_NONE));
+ while (grab_pointer_window(FALSE, FALSE, OB_CURSOR_NONE, None));
while (grab_server(FALSE));
}