summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbscreen.cpp
diff options
context:
space:
mode:
authorMartin Klapetek <mklapetek@kde.org>2014-03-11 13:39:53 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-15 10:46:05 +0100
commit2ae50d912389c5da4057fa6e49c662af469d7214 (patch)
tree8e65fc531ef3c83145263e15ca2f660dd4981f6c /src/plugins/platforms/xcb/qxcbscreen.cpp
parenteadaaf69fbb5bf7ff4b50efd41ba621d24fd4f61 (diff)
Update QScreen::availableGeometry() on _NET_WORKAREA atom changes
When the window manager sets new workarea using the _NET_WORKAREA xcb atom, QScreen::availableGeometry() does not react to that and returns an invalid available geometry. This patch reacts to that change and updates the QScreen property properly on xcb platform. Change-Id: I8f0b4a27bab0ce450fb7393f4d9a56f3ce9a4ea1 Reviewed-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbscreen.cpp')
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index b1ef3182ba..9f19841437 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -371,7 +371,6 @@ void QXcbScreen::handleScreenChange(xcb_randr_screen_change_notify_event_t *chan
}
QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), geometry());
- QWindowSystemInterface::handleScreenAvailableGeometryChange(QPlatformScreen::screen(), availableGeometry());
QWindowSystemInterface::handleScreenOrientationChange(QPlatformScreen::screen(), m_orientation);
QDpi ldpi = logicalDpi();
@@ -409,6 +408,8 @@ void QXcbScreen::updateGeometry(xcb_timestamp_t timestamp)
m_availableGeometry = m_geometry & virtualAvailableGeometry;
}
free(workArea);
+
+ QWindowSystemInterface::handleScreenAvailableGeometryChange(QPlatformScreen::screen(), m_availableGeometry);
}
void QXcbScreen::updateRefreshRate()