summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-07-09 11:17:37 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-12 12:41:30 +0200
commit6c37fb70d695df001999c78a27ca50d6d2ac6517 (patch)
tree18646ddc6344e9f59a0b3e1383f2dc6527fbcd7b /src
parente602003f87fe8483be3963bb6b42692b727d1b3d (diff)
Consider virtual screen when determining dock widget visibility.
Task-number: QTBUG-32260 Change-Id: I8b28e3869a6e3b1ed12a311dfa0100979098fc4b Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/widgets/widgets/qdockwidget.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp
index 7cd7172ef5..45e3f1b10b 100644
--- a/src/widgets/widgets/qdockwidget.cpp
+++ b/src/widgets/widgets/qdockwidget.cpp
@@ -49,6 +49,7 @@
#include <qevent.h>
#include <qfontmetrics.h>
#include <qwindow.h>
+#include <qscreen.h>
#include <qmainwindow.h>
#include <qrubberband.h>
#include <qstylepainter.h>
@@ -1387,9 +1388,17 @@ bool QDockWidget::event(QEvent *event)
d->toggleViewAction->setChecked(false);
emit visibilityChanged(false);
break;
- case QEvent::Show:
+ case QEvent::Show: {
d->toggleViewAction->setChecked(true);
- emit visibilityChanged(geometry().right() >= 0 && geometry().bottom() >= 0);
+ QPoint parentTopLeft(0, 0);
+ if (isWindow()) {
+ if (const QWindow *window = windowHandle())
+ parentTopLeft = window->screen()->availableVirtualGeometry().topLeft();
+ else
+ parentTopLeft = QGuiApplication::primaryScreen()->availableVirtualGeometry().topLeft();
+ }
+ emit visibilityChanged(geometry().right() >= parentTopLeft.x() && geometry().bottom() >= parentTopLeft.y());
+}
break;
#endif
case QEvent::ApplicationLayoutDirectionChange: