diff options
author | Paul Olav Tvete <paul.tvete@nokia.com> | 2009-10-22 14:02:36 (GMT) |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@nokia.com> | 2009-10-22 14:03:59 (GMT) |
commit | 67475f1f482cfb90c357f9e6d96592a1a29f8e7c (patch) | |
tree | fb056717bbeea2053578f5816db77085f7319a5e /src | |
parent | c0395ffd43858e700e2f9015b892c2e978ee8881 (diff) | |
download | Qt-67475f1f482cfb90c357f9e6d96592a1a29f8e7c.zip Qt-67475f1f482cfb90c357f9e6d96592a1a29f8e7c.tar.gz Qt-67475f1f482cfb90c357f9e6d96592a1a29f8e7c.tar.bz2 |
WinId for toplevel windows.
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qwidget_lite.cpp | 20 | ||||
-rw-r--r-- | src/gui/painting/qwindowsurface.cpp | 6 | ||||
-rw-r--r-- | src/gui/painting/qwindowsurface_p.h | 1 | ||||
-rw-r--r-- | src/plugins/graphicssystems/testlite/qwindowsurface_testlite.cpp | 8 | ||||
-rw-r--r-- | src/plugins/graphicssystems/testlite/qwindowsurface_testlite.h | 1 |
5 files changed, 30 insertions, 6 deletions
diff --git a/src/gui/kernel/qwidget_lite.cpp b/src/gui/kernel/qwidget_lite.cpp index d5e4ac2..cbda042 100644 --- a/src/gui/kernel/qwidget_lite.cpp +++ b/src/gui/kernel/qwidget_lite.cpp @@ -58,15 +58,23 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool /*destro Q_UNUSED(initializeWindow); // XXX - Qt::WindowFlags flags = data.window_flags; -#if 1 + if (!(flags & Qt::Window) || q->windowType() == Qt::Desktop) + return; // we only care about real toplevels + QWindowSurface *surface = q->windowSurface(); - if (surface && (flags & Qt::Window)) - data.window_flags = surface->setWindowFlags(data.window_flags); -#endif -// qDebug() << "create_sys" << q; + + if (!surface) + surface = createDefaultWindowSurface(); + + Q_ASSERT(surface); + + data.window_flags = surface->setWindowFlags(data.window_flags); + + setWinId(surface->winId()); + + qDebug() << "create_sys" << q << q->internalWinId(); } void QWidget::destroy(bool destroyWindow, bool destroySubWindows) diff --git a/src/gui/painting/qwindowsurface.cpp b/src/gui/painting/qwindowsurface.cpp index 8add040..1b0a2ef 100644 --- a/src/gui/painting/qwindowsurface.cpp +++ b/src/gui/painting/qwindowsurface.cpp @@ -378,6 +378,12 @@ void QWindowSurface::setVisible(bool visible) Q_UNUSED(visible); } + +WId QWindowSurface::winId() const +{ + return WId(0); +} + #endif QT_END_NAMESPACE diff --git a/src/gui/painting/qwindowsurface_p.h b/src/gui/painting/qwindowsurface_p.h index a84c461..88cc8ba 100644 --- a/src/gui/painting/qwindowsurface_p.h +++ b/src/gui/painting/qwindowsurface_p.h @@ -93,6 +93,7 @@ public: virtual void setVisible(bool visible); virtual Qt::WindowFlags setWindowFlags(Qt::WindowFlags type); virtual Qt::WindowFlags windowFlags() const; + virtual WId winId() const; #endif bool hasStaticContentsSupport() const; diff --git a/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.cpp b/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.cpp index e0b9b9f..b14efb8 100644 --- a/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.cpp +++ b/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.cpp @@ -568,4 +568,12 @@ void QTestLiteWindowSurface::setVisible(bool visible) } +WId QTestLiteWindowSurface::winId() const +{ + if (xw) + return (WId) xw->window; + else + return WId(0); +} + QT_END_NAMESPACE diff --git a/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.h b/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.h index af57c0b..59db81f 100644 --- a/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.h +++ b/src/plugins/graphicssystems/testlite/qwindowsurface_testlite.h @@ -78,6 +78,7 @@ public: Qt::WindowFlags setWindowFlags(Qt::WindowFlags type); Qt::WindowFlags windowFlags() const; void setVisible(bool visible); + WId winId() const; private: QTestLiteGraphicsSystem *mGraphicsSystem; |