Merge pull request #1712 from Airblader/feature-next-wm-size-hints-adopted

[Adopted] Use WM_SIZE_HINTS when available to set the geometry of floating windows
This commit is contained in:
Michael Stapelberg 2015-08-02 23:52:10 -07:00
commit 05fb909636
1 changed files with 11 additions and 0 deletions

View File

@ -419,6 +419,17 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
if (cwindow->dock) if (cwindow->dock)
want_floating = false; 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 /* Store the requested geometry. The width/height gets raised to at least
* 75x50 when entering floating mode, which is the minimum size for a * 75x50 when entering floating mode, which is the minimum size for a
* window to be useful (smaller windows are usually overlays/toolbars/ * window to be useful (smaller windows are usually overlays/toolbars/