diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2011-05-02 10:52:15 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2011-05-02 10:52:15 +0200 |
commit | 3edff16c872fe7abe87007ba2ec78467f35430a9 (patch) | |
tree | 0c85e170952942d76e148caea8f2c5c689d9c22a /src/gui | |
parent | 3086f2098e94754b6bf5359ade8224b351979579 (diff) |
Properly handle the expose event for QWindow.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qwindow_qpa.cpp | 6 | ||||
-rw-r--r-- | src/gui/kernel/qwindow_qpa.h | 3 | ||||
-rw-r--r-- | src/gui/kernel/qwindow_qpa_p.h | 3 | ||||
-rw-r--r-- | src/gui/painting/qwindowsurface.cpp | 2 |
4 files changed, 13 insertions, 1 deletions
diff --git a/src/gui/kernel/qwindow_qpa.cpp b/src/gui/kernel/qwindow_qpa.cpp index aa23683654..19da97acef 100644 --- a/src/gui/kernel/qwindow_qpa.cpp +++ b/src/gui/kernel/qwindow_qpa.cpp @@ -327,6 +327,12 @@ QPlatformWindow *QWindow::handle() const return d->platformWindow; } +QWindowSurface *QWindow::surface() const +{ + Q_D(const QWindow); + return d->surface; +} + void QWindow::showMinimized() { qDebug() << "unimplemented:" << __FILE__ << __LINE__; diff --git a/src/gui/kernel/qwindow_qpa.h b/src/gui/kernel/qwindow_qpa.h index b13cf9165b..f2fde2d532 100644 --- a/src/gui/kernel/qwindow_qpa.h +++ b/src/gui/kernel/qwindow_qpa.h @@ -66,6 +66,7 @@ class QWheelEvent; class QPlatformWindow; class QWindowContext; +class QWindowSurface; class Q_GUI_EXPORT QWindow : public QObject { @@ -132,6 +133,7 @@ public: void destroy(); QPlatformWindow *handle() const; + QWindowSurface *surface() const; public Q_SLOTS: inline void show() { setVisible(true); } @@ -174,6 +176,7 @@ private: friend class QGuiApplication; friend class QGuiApplicationPrivate; + friend class QWindowSurface; }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qwindow_qpa_p.h b/src/gui/kernel/qwindow_qpa_p.h index 06458290f1..1acc023e92 100644 --- a/src/gui/kernel/qwindow_qpa_p.h +++ b/src/gui/kernel/qwindow_qpa_p.h @@ -62,13 +62,13 @@ public: , platformWindow(0) , visible(false) , glContext(0) + , surface(0) { isWindow = true; } ~QWindowPrivate() { - } Qt::WindowFlags windowFlags; @@ -80,6 +80,7 @@ public: QString windowTitle; QRect geometry; QWindowContext *glContext; + QWindowSurface *surface; }; diff --git a/src/gui/painting/qwindowsurface.cpp b/src/gui/painting/qwindowsurface.cpp index 97fb7a9972..eea3e60514 100644 --- a/src/gui/painting/qwindowsurface.cpp +++ b/src/gui/painting/qwindowsurface.cpp @@ -116,6 +116,8 @@ public: QWindowSurface::QWindowSurface(QWindow *window, bool /*setDefaultSurface*/) : d_ptr(new QWindowSurfacePrivate(window)) { + if (window) + window->d_func()->surface = this; #if 0 if (!QApplicationPrivate::runtime_graphics_system) { if (setDefaultSurface && window) |