From: Andrzej Pronobis Date: Mon, 2 Feb 2015 01:04:41 +0000 (-0800) Subject: Use WM_SIZE_HINTS whenever it's provided to set the geometry of floating windows. X-Git-Tag: 4.11~59^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=refs%2Fpull%2F1712%2Fhead;p=i3%2Fi3 Use WM_SIZE_HINTS whenever it's provided to set the geometry of floating windows. --- diff --git a/src/manage.c b/src/manage.c index 9d27ddea..0bea0ba8 100644 --- a/src/manage.c +++ b/src/manage.c @@ -428,6 +428,17 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki if (cwindow->dock) want_floating = false; + /* Plasma windows set their geometry in WM_SIZE_HINTS. */ + if ((wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION) && + (wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE || wm_size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE)) { + DLOG("We are setting geometry according to wm_size_hints x=%d y=%d w=%d h=%d\n", + wm_size_hints.x, wm_size_hints.y, wm_size_hints.width, wm_size_hints.height); + geom->x = wm_size_hints.x; + geom->y = wm_size_hints.y; + geom->width = wm_size_hints.width; + geom->height = wm_size_hints.height; + } + /* Store the requested geometry. The width/height gets raised to at least * 75x50 when entering floating mode, which is the minimum size for a * window to be useful (smaller windows are usually overlays/toolbars/…