diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-09-03 16:10:47 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-09-22 13:03:21 +0200 |
commit | a6316e6e744815c89b2d7bd7946e04549d183769 (patch) | |
tree | 8d24badd8a81af8531172015ba7b842ba0af4d9a /src/widgets/kernel/qdesktopwidget.cpp | |
parent | 4918623f7637f348977653f4af262871a32e1364 (diff) |
Fix emission of QDesktopWidget::workAreaResized().
Connect to QScreen::availableGeometryChanged().
Task-number: QTBUG-32567
Change-Id: I2097d80faa83ae062f7e149122fba26d23432e95
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/widgets/kernel/qdesktopwidget.cpp')
-rw-r--r-- | src/widgets/kernel/qdesktopwidget.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/widgets/kernel/qdesktopwidget.cpp b/src/widgets/kernel/qdesktopwidget.cpp index 3975e423a0..2ac1893256 100644 --- a/src/widgets/kernel/qdesktopwidget.cpp +++ b/src/widgets/kernel/qdesktopwidget.cpp @@ -97,6 +97,8 @@ void QDesktopWidgetPrivate::_q_updateScreens() screenWidget->setGeometry(qScreen->geometry()); QObject::connect(qScreen, SIGNAL(geometryChanged(QRect)), q, SLOT(_q_updateScreens()), Qt::QueuedConnection); + QObject::connect(qScreen, SIGNAL(availableGeometryChanged(QRect)), + q, SLOT(_q_availableGeometryChanged()), Qt::QueuedConnection); QObject::connect(qScreen, SIGNAL(destroyed()), q, SLOT(_q_updateScreens()), Qt::QueuedConnection); screens.append(screenWidget); @@ -122,10 +124,15 @@ void QDesktopWidgetPrivate::_q_updateScreens() if (oldLength != targetLength) emit q->screenCountChanged(targetLength); - foreach (int changedScreen, changedScreens) { + foreach (int changedScreen, changedScreens) emit q->resized(changedScreen); - emit q->workAreaResized(changedScreen); - } +} + +void QDesktopWidgetPrivate::_q_availableGeometryChanged() +{ + Q_Q(QDesktopWidget); + if (QScreen *screen = qobject_cast<QScreen *>(q->sender())) + emit q->workAreaResized(QGuiApplication::screens().indexOf(screen)); } QDesktopWidget::QDesktopWidget() |