xcb_create_pixmap(conn, screen->root_depth, r->bar->buffer, r->bar->id,
WIDTH(r->bar), HEIGHT(r->bar));
- xcb_randr_select_input(conn, r->bar->id,
- XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE);
+ if (xrandr_support)
+ xcb_randr_select_input(conn, r->bar->id,
+ XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE);
if (bar_enabled)
map_window_raised(r->bar->id);
xcb_flush(conn);
}
+#ifdef XCB_CONN_ERROR
void
check_conn(void)
{
if (err)
errx(err, "X CONNECTION ERROR: %s", s);
}
+#else
+void
+check_conn(void)
+{
+ if (conn->has_error)
+ errx(1, "X CONNECTION ERROR");
+}
+#endif
int
enable_wm(void)
/* initial Xrandr setup */
xrandr_support = 0;
- c = xcb_randr_query_version(conn, 1, 1);
- r = xcb_randr_query_version_reply(conn, c, NULL);
- if (r) {
- if (r->major_version >= 1) {
- qep = xcb_get_extension_data(conn, &xcb_randr_id);
- if (qep) {
+ qep = xcb_get_extension_data(conn, &xcb_randr_id);
+ if (qep->present) {
+ c = xcb_randr_query_version(conn, 1, 1);
+ r = xcb_randr_query_version_reply(conn, c, NULL);
+ if (r) {
+ if (r->major_version >= 1) {
xrandr_support = 1;
xrandr_eventbase = qep->first_event;
}
+ free(r);
}
- free(r);
}
cursor_font = xcb_generate_id(conn);