X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fmain.c;h=b8b4bdf15c1eb2cdb9dd6c5e9951969255ed4e4d;hb=1a8561949882c359fcd0d53a81dde30c0bd0934e;hp=7eb47c822fa83550b0d61df0f8d127a27cac1e8d;hpb=9273f67734eeb8d303e63c3af6975482d3f58e80;p=i3%2Fi3 diff --git a/src/main.c b/src/main.c index 7eb47c82..b8b4bdf1 100644 --- a/src/main.c +++ b/src/main.c @@ -89,6 +89,7 @@ struct ws_assignments_head ws_assignments = TAILQ_HEAD_INITIALIZER(ws_assignment /* We hope that those are supported and set them to true */ bool xcursor_supported = true; bool xkb_supported = true; +bool shape_supported = true; bool force_xinerama = false; @@ -622,6 +623,9 @@ int main(int argc, char *argv[]) { xcb_set_root_cursor(XCURSOR_CURSOR_POINTER); const xcb_query_extension_reply_t *extreply; + xcb_prefetch_extension_data(conn, &xcb_xkb_id); + xcb_prefetch_extension_data(conn, &xcb_shape_id); + extreply = xcb_get_extension_data(conn, &xcb_xkb_id); xkb_supported = extreply->present; if (!extreply->present) { @@ -683,6 +687,23 @@ int main(int argc, char *argv[]) { xkb_base = extreply->first_event; } + /* Check for Shape extension. We want to handle input shapes which is + * introduced in 1.1. */ + extreply = xcb_get_extension_data(conn, &xcb_shape_id); + if (extreply->present) { + shape_base = extreply->first_event; + xcb_shape_query_version_cookie_t cookie = xcb_shape_query_version(conn); + xcb_shape_query_version_reply_t *version = + xcb_shape_query_version_reply(conn, cookie, NULL); + shape_supported = version && version->minor_version >= 1; + free(version); + } else { + shape_supported = false; + } + if (!shape_supported) { + DLOG("shape 1.1 is not present on this server\n"); + } + restore_connect(); property_handlers_init();