From: Michael Stapelberg Date: Sat, 20 Aug 2011 15:48:07 +0000 (+0200) Subject: Don’t die, but ELOG and fallback when the pointer cannot be queried (Thanks Niklas) X-Git-Tag: 4.0.2~35^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f15559eb1f8a0b1e4c634c13754061228eae83b9;p=i3%2Fi3 Don’t die, but ELOG and fallback when the pointer cannot be queried (Thanks Niklas) --- diff --git a/src/main.c b/src/main.c index 90e5eb06..77e295fc 100644 --- a/src/main.c +++ b/src/main.c @@ -430,18 +430,21 @@ int main(int argc, char *argv[]) { } xcb_query_pointer_reply_t *pointerreply; - if (!(pointerreply = xcb_query_pointer_reply(conn, pointercookie, NULL))) - die("Could not query pointer position\n"); - - DLOG("Pointer at %d, %d\n", pointerreply->root_x, pointerreply->root_y); - Output *output = get_output_containing(pointerreply->root_x, pointerreply->root_y); - if (!output) { - ELOG("ERROR: No screen at (%d, %d), starting on the first screen\n", - pointerreply->root_x, pointerreply->root_y); + Output *output = NULL; + if (!(pointerreply = xcb_query_pointer_reply(conn, pointercookie, NULL))) { + ELOG("Could not query pointer position, using first screen\n"); output = get_first_output(); - } + } else { + DLOG("Pointer at %d, %d\n", pointerreply->root_x, pointerreply->root_y); + output = get_output_containing(pointerreply->root_x, pointerreply->root_y); + if (!output) { + ELOG("ERROR: No screen at (%d, %d), starting on the first screen\n", + pointerreply->root_x, pointerreply->root_y); + output = get_first_output(); + } - con_focus(con_descend_focused(output_get_content(output->con))); + con_focus(con_descend_focused(output_get_content(output->con))); + } tree_render();