summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-02-12 15:28:12 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-02-16 15:56:29 +0000
commiteffc6b4cd15aefa1bef30c27f0458390735fafb5 (patch)
treed77f1e07cf62e80f53e43bdeb117c0b4efa9843b /src/widgets
parent1748b7e7d2f619dc32df7ccbd3aa24316aa63c82 (diff)
Add widget support for requestUpdate() and improve its docs and tests
We must do something when requestUpdate() is called on a QWidgetWindow. The semantics of UpdateRequest for QWindow and QWidget are unfortunately different: for widgets an UpdateRequest means "sync the backing store". For QWindow it also involves marking as dirty. Change-Id: Idf40b3fc0873652dc081edeb12c96b3007a126ef Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/kernel/qwidgetwindow.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
index 11dfe8a6d5..6c7dc070d5 100644
--- a/src/widgets/kernel/qwidgetwindow.cpp
+++ b/src/widgets/kernel/qwidgetwindow.cpp
@@ -292,11 +292,21 @@ bool QWidgetWindow::event(QEvent *event)
case QEvent::WindowBlocked:
qt_button_down = 0;
break;
+
+ case QEvent::UpdateRequest:
+ // This is not the same as an UpdateRequest for a QWidget. That just
+ // syncs the backing store while here we also must mark as dirty.
+ m_widget->repaint();
+ return true;
+
default:
break;
}
- return m_widget->event(event) || QWindow::event(event);
+ if (m_widget->event(event) && event->type() != QEvent::Timer)
+ return true;
+
+ return QWindow::event(event);
}
QPointer<QWidget> qt_last_mouse_receiver = 0;