Don’t die, but ELOG and fallback when the pointer cannot be queried (Thanks Niklas)

next
Michael Stapelberg 2011-08-20 17:48:07 +02:00
parent 0f077f1dbf
commit f15559eb1f
1 changed files with 13 additions and 10 deletions

View File

@ -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();