summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
diff options
context:
space:
mode:
authorAlexander Volkov <a.volkov@rusbitech.ru>2014-09-26 13:03:19 +0400
committerShawn Rutledge <shawn.rutledge@digia.com>2014-09-29 14:26:26 +0200
commit382b7afbe253c29499631066bbe1091f0afbd386 (patch)
tree3e6e6e5c5a767ed2e918e3e9fb838e3502d28910 /src/plugins/platforms/xcb
parentdfe853bff90444edf92a993e391df853780c9e8d (diff)
xcb: Fix logic for minimized state
_NET_WM_STATE message can be received by a window in the minimized state. Don't change the window state in this case. Task-number: QTBUG-31117 Task-number: QTBUG-39376 Task-number: QTBUG-34430 Change-Id: Ic77a345e442891972b692803fab1e2f6aef30433 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src/plugins/platforms/xcb')
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 121e979765..e45f26e728 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -2106,7 +2106,11 @@ void QXcbWindow::handlePropertyNotifyEvent(const xcb_property_notify_event_t *ev
newState = Qt::WindowMinimized;
}
free(reply);
+ } else { // _NET_WM_STATE can't change minimized state
+ if (m_lastWindowStateEvent == Qt::WindowMinimized)
+ newState = Qt::WindowMinimized;
}
+
if (newState != Qt::WindowMinimized) { // Something else changed, get _NET_WM_STATE.
const NetWmStates states = netWmStates();
if ((states & NetWmStateMaximizedHorz) && (states & NetWmStateMaximizedVert))