X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Ffloating.c;h=4180ba724903ea7494407016ef9ffdb77a7a6e99;hb=617afc67a25c9bb7bf91a7659319e07fbe32d758;hp=1c35c8d0e854bb3364bd47e761dd26224b36e040;hpb=cd0cd0c3d22d7acba240ca10d8594621cc67ee34;p=i3%2Fi3 diff --git a/src/floating.c b/src/floating.c index 1c35c8d0..4180ba72 100644 --- a/src/floating.c +++ b/src/floating.c @@ -682,6 +682,8 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_ /* Grab the pointer */ xcb_grab_pointer_cookie_t cookie; xcb_grab_pointer_reply_t *reply; + xcb_generic_error_t *error; + cookie = xcb_grab_pointer(conn, false, /* get all pointer events specified by the following mask */ root, /* grab the root window */ @@ -692,8 +694,9 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_ xcursor, /* possibly display a special cursor */ XCB_CURRENT_TIME); - if ((reply = xcb_grab_pointer_reply(conn, cookie, NULL)) == NULL) { - ELOG("Could not grab pointer\n"); + if ((reply = xcb_grab_pointer_reply(conn, cookie, &error)) == NULL) { + ELOG("Could not grab pointer (error_code = %d)\n", error->error_code); + free(error); return DRAG_ABORT; } @@ -711,8 +714,10 @@ drag_result_t drag_pointer(Con *con, const xcb_button_press_event_t *event, xcb_ XCB_GRAB_MODE_ASYNC /* keyboard mode */ ); - if ((keyb_reply = xcb_grab_keyboard_reply(conn, keyb_cookie, NULL)) == NULL) { - ELOG("Could not grab keyboard\n"); + if ((keyb_reply = xcb_grab_keyboard_reply(conn, keyb_cookie, &error)) == NULL) { + ELOG("Could not grab keyboard (error_code = %d)\n", error->error_code); + free(error); + xcb_ungrab_pointer(conn, XCB_CURRENT_TIME); return DRAG_ABORT; }