summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/xwin/winmultiwindowwm.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/xwin/winmultiwindowwm.c b/hw/xwin/winmultiwindowwm.c
index 580d641b7..df7e6d3d5 100644
--- a/hw/xwin/winmultiwindowwm.c
+++ b/hw/xwin/winmultiwindowwm.c
@@ -1763,8 +1763,12 @@ winApplyHints(WMInfoPtr pWMInfo, xcb_window_t iWindow, HWND hWnd, HWND * zstyle)
cookie = xcb_icccm_get_wm_normal_hints(conn, iWindow);
if (xcb_icccm_get_wm_normal_hints_reply(conn, cookie, &size_hints, NULL)) {
if (size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE) {
- /* Not maximizable if a maximum size is specified */
- hint |= HINT_NOMAXIMIZE;
+
+ /* Not maximizable if a maximum size is specified, and that size
+ is smaller (in either dimension) than the screen size */
+ if ((size_hints.max_width < GetSystemMetrics(SM_CXVIRTUALSCREEN))
+ || (size_hints.max_height < GetSystemMetrics(SM_CYVIRTUALSCREEN)))
+ hint |= HINT_NOMAXIMIZE;
if (size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE) {
/*