From 75e5ffe0f71bfccd6ae31d1b437dfea58bfb28a7 Mon Sep 17 00:00:00 2001 From: Dyami Caliri Date: Tue, 16 Sep 2014 09:35:11 -0700 Subject: Update widget winId when screen changes When a window's screen changes it may recreate the platform window. In that case, update the winId in the widget to keep it in sync. Task-number: QTBUG-40681 Change-Id: Iec815320214832bb63952de3a5bd1340a04dacd4 Reviewed-by: Laszlo Agocs --- src/widgets/kernel/qwidget.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 65978ef562..8d1a24a4ec 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -9042,6 +9042,12 @@ bool QWidget::event(QEvent *event) event->ignore(); break; #endif + case QEvent::ScreenChangeInternal: + if (const QTLWExtra *te = d->maybeTopData()) { + const QWindow *win = te->window; + d->setWinId((win && win->handle()) ? win->handle()->winId() : 0); + } + break; #ifndef QT_NO_PROPERTIES case QEvent::DynamicPropertyChange: { const QByteArray &propName = static_cast(event)->propertyName(); -- cgit v1.2.3