From: Michael Stapelberg Date: Fri, 30 Aug 2013 17:59:57 +0000 (+0200) Subject: Bugfix: update root geometry on output changes for “fullscreen global” (Thanks kaersten) X-Git-Tag: 4.7~65^2^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=93463bc3932e820bc86383fc4de1a07c82356967;p=i3%2Fi3 Bugfix: update root geometry on output changes for “fullscreen global” (Thanks kaersten) fixes #1064 --- diff --git a/src/handlers.c b/src/handlers.c index 36c83399..931e8634 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -423,6 +423,19 @@ int handle_configure_event(void *prophs, xcb_connection_t *conn, xcb_configure_n static void handle_screen_change(xcb_generic_event_t *e) { DLOG("RandR screen change\n"); + /* The geometry of the root window is used for “fullscreen global” and + * changes when new outputs are added. */ + xcb_get_geometry_cookie_t cookie = xcb_get_geometry(conn, root); + xcb_get_geometry_reply_t *reply = xcb_get_geometry_reply(conn, cookie, NULL); + if (reply == NULL) { + ELOG("Could not get geometry of the root window, exiting\n"); + exit(1); + } + DLOG("root geometry reply: (%d, %d) %d x %d\n", reply->x, reply->y, reply->width, reply->height); + + croot->rect.width = reply->width; + croot->rect.height = reply->height; + randr_query_outputs(); scratchpad_fix_resolution();