From a6316e6e744815c89b2d7bd7946e04549d183769 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 3 Sep 2014 16:10:47 +0200 Subject: Fix emission of QDesktopWidget::workAreaResized(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Connect to QScreen::availableGeometryChanged(). Task-number: QTBUG-32567 Change-Id: I2097d80faa83ae062f7e149122fba26d23432e95 Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qdesktopwidget.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/widgets/kernel/qdesktopwidget.cpp') 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(q->sender())) + emit q->workAreaResized(QGuiApplication::screens().indexOf(screen)); } QDesktopWidget::QDesktopWidget() -- cgit v1.2.3