summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-05-02 10:52:15 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-05-02 10:52:15 +0200
commit3edff16c872fe7abe87007ba2ec78467f35430a9 (patch)
tree0c85e170952942d76e148caea8f2c5c689d9c22a /src/gui
parent3086f2098e94754b6bf5359ade8224b351979579 (diff)
Properly handle the expose event for QWindow.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qwindow_qpa.cpp6
-rw-r--r--src/gui/kernel/qwindow_qpa.h3
-rw-r--r--src/gui/kernel/qwindow_qpa_p.h3
-rw-r--r--src/gui/painting/qwindowsurface.cpp2
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)