diff options
| author | Samuel Rødal <[email protected]> | 2011-04-29 15:45:30 +0200 |
|---|---|---|
| committer | Samuel Rødal <[email protected]> | 2011-04-29 15:46:07 +0200 |
| commit | 57b7c82560088149010b000bc78a3a6d8f2f8834 (patch) | |
| tree | a78376c695b0f649c7fcb4992a1dafa6b1e4cb13 /src/gui/kernel/qwidget.cpp | |
| parent | c1aa42e195cc6ad6b94b4d666fcdf7599dd91e8c (diff) | |
Add QWidgetWindow to bridge events from QWindow to QWidget.
Gets rid of QWidget dependencies in QWindow and QWindowSurface. Events
are not delivered to the correct child widget yet.
Diffstat (limited to 'src/gui/kernel/qwidget.cpp')
| -rw-r--r-- | src/gui/kernel/qwidget.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index d107bf1df99..f6c95719c27 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -78,6 +78,7 @@ #endif #if defined(Q_WS_QPA) #include "qplatformwindow_qpa.h" +#include "private/qwidgetwindow_qpa_p.h" #endif #include "qpainter.h" #include "qtooltip.h" @@ -358,9 +359,9 @@ QWidgetPrivate::~QWidgetPrivate() class QDummyWindowSurface : public QWindowSurface { public: - QDummyWindowSurface(QWidget *window) : QWindowSurface(window) {} - QPaintDevice *paintDevice() { return window(); } - void flush(QWidget *, const QRegion &, const QPoint &) {} + QDummyWindowSurface(QWindow *window) : QWindowSurface(window) {} + QPaintDevice *paintDevice() { return static_cast<QWidgetWindow *>(window())->widget(); } + void flush(QWindow *, const QRegion &, const QPoint &) {} }; QWindowSurface *QWidgetPrivate::createDefaultWindowSurface() @@ -370,12 +371,12 @@ QWindowSurface *QWidgetPrivate::createDefaultWindowSurface() QWindowSurface *surface; #ifndef QT_NO_PROPERTIES if (q->property("_q_DummyWindowSurface").toBool()) { - surface = new QDummyWindowSurface(q); + surface = new QDummyWindowSurface(q->windowHandle()); } else #endif { if (QApplicationPrivate::graphicsSystem()) - surface = QApplicationPrivate::graphicsSystem()->createWindowSurface(q); + surface = QApplicationPrivate::graphicsSystem()->createWindowSurface(q->windowHandle()); else surface = createDefaultWindowSurface_sys(); } |
