if (grab) {
if (kgrabs++ == 0)
- ret = XGrabKeyboard(ob_display, ob_root, FALSE, GrabModeAsync,
- GrabModeAsync, event_lasttime) == Success;
+ ret = XGrabKeyboard(ob_display, RootWindow(ob_display, ob_screen),
+ FALSE, GrabModeAsync, GrabModeAsync,
+ event_lasttime) == Success;
else
ret = TRUE;
} else if (kgrabs > 0) {
if (grab) {
if (pgrabs++ == 0)
- ret = XGrabPointer(ob_display, ob_root, False, GRAB_PTR_MASK,
- GrabModeAsync, GrabModeAsync, FALSE,
- ob_cursor(cur),
- event_lasttime) == Success;
+ ret = XGrabPointer(ob_display, RootWindow(ob_display, ob_screen),
+ False, GRAB_PTR_MASK, GrabModeAsync,
+ GrabModeAsync, FALSE,
+ ob_cursor(cur), event_lasttime) == Success;
else
ret = TRUE;
} else if (pgrabs > 0) {
{
guint i;
+ xerror_set_ignore(TRUE); /* can get BadAccess' from these */
+ xerror_occured = FALSE;
for (i = 0; i < MASK_LIST_SIZE; ++i)
XGrabButton(ob_display, button, state | mask_list[i], win, FALSE, mask,
pointer_mode, GrabModeSync, None, ob_cursor(cur));
+ xerror_set_ignore(FALSE);
+ if (xerror_occured)
+ g_warning("failed to grab button %d modifiers %d", button, state);
}
void grab_button(guint button, guint state, Window win, guint mask)