summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qwidget_qpa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qwidget_qpa.cpp')
-rw-r--r--src/gui/kernel/qwidget_qpa.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/gui/kernel/qwidget_qpa.cpp b/src/gui/kernel/qwidget_qpa.cpp
index b5a75155da..efecb4407c 100644
--- a/src/gui/kernel/qwidget_qpa.cpp
+++ b/src/gui/kernel/qwidget_qpa.cpp
@@ -90,24 +90,24 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
return; // we only care about real toplevels
QWindowSurface *surface = q->windowSurface();
-// QPlatformWindow *platformWindow = q->platformWindow();
-// if (!platformWindow) {
-// platformWindow = QApplicationPrivate::platformIntegration()->createPlatformWindow(q);
-// }
-// Q_ASSERT(platformWindow);
+ QWindow *win = topData()->window;
-// if (!surface ) {
-// if (platformWindow && q->platformWindowFormat().hasWindowSurface()) {
-// surface = QApplicationPrivate::platformIntegration()->createWindowSurface(q,platformWindow->winId());
-// } else {
-// q->setAttribute(Qt::WA_PaintOnScreen,true);
-// }
-// }
+ // translate window type
+// window->setWindowType();
+ win->create();
+
+ if (!surface ) {
+ if (win) {
+ surface = QApplicationPrivate::platformIntegration()->createWindowSurface(win, win->winId());
+ } else {
+ q->setAttribute(Qt::WA_PaintOnScreen,true);
+ }
+ }
// data.window_flags = q->windowHandle()->setWindowFlags(data.window_flags);
-// setWinId(q->platformWindow()->winId());
+ setWinId(win->winId());
//first check children. and create them if necessary
// q_createNativeChildrenAndSetParent(q->platformWindow(),q);
@@ -211,7 +211,7 @@ void QWidgetPrivate::setParent_sys(QWidget *newparent, Qt::WindowFlags f)
//qDebug() << "setParent_sys" << q << newparent << hex << f;
// if (QPlatformWindow *window = q->platformWindow())
// data.window_flags = window->setWindowFlags(data.window_flags);
- Q_ASSERT(false);
+// Q_ASSERT(false);
}
if (q->isWindow() || (!newparent || newparent->isVisible()) || explicitlyHidden)
@@ -705,6 +705,10 @@ void QWidgetPrivate::deleteSysExtra()
void QWidgetPrivate::createTLSysExtra()
{
+ Q_Q(QWidget);
+ extra->topextra->screenIndex = 0;
+ extra->topextra->window = new QWindow;
+ extra->topextra->window->setWidget(q);
}
void QWidgetPrivate::deleteTLSysExtra()