summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/global/qnamespace.h58
-rw-r--r--src/gui/kernel/qplatformwindow_qpa.cpp11
-rw-r--r--src/gui/kernel/qplatformwindow_qpa.h1
-rw-r--r--src/gui/kernel/qwidget_qpa.cpp18
-rw-r--r--src/gui/kernel/qwindow_qpa.cpp19
-rw-r--r--src/gui/kernel/qwindow_qpa.h15
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp2
7 files changed, 21 insertions, 103 deletions
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index e5c19fba72..252af2caf6 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -292,13 +292,7 @@ public:
WindowContextHelpButtonHint = 0x00010000,
WindowShadeButtonHint = 0x00020000,
WindowStaysOnTopHint = 0x00040000,
- // reserved for Qt3Support:
- // WMouseNoMask = 0x00080000,
- // WDestructiveClose = 0x00100000,
- // WStaticContents = 0x00200000,
- // WGroupLeader = 0x00400000,
- // WShowModal = 0x00800000,
- // WNoMousePropagation = 0x01000000,
+
CustomizeWindowHint = 0x02000000,
WindowStaysOnBottomHint = 0x04000000,
WindowCloseButtonHint = 0x08000000,
@@ -308,56 +302,6 @@ public:
WindowCancelButtonHint = 0x00100000,
WindowSoftkeysVisibleHint = 0x40000000,
WindowSoftkeysRespondHint = 0x80000000
-
-#ifdef QT3_SUPPORT
- ,
- WMouseNoMask = 0x00080000,
- WDestructiveClose = 0x00100000,
- WStaticContents = 0x00200000,
- WGroupLeader = 0x00400000,
- WShowModal = 0x00800000,
- WNoMousePropagation = 0x01000000,
-
- WType_TopLevel = Window,
- WType_Dialog = Dialog,
- WType_Popup = Popup,
- WType_Desktop = Desktop,
- WType_Mask = WindowType_Mask,
-
- WStyle_Customize = 0,
- WStyle_NormalBorder = 0,
- WStyle_DialogBorder = MSWindowsFixedSizeDialogHint,
- WStyle_NoBorder = FramelessWindowHint,
- WStyle_Title = WindowTitleHint,
- WStyle_SysMenu = WindowSystemMenuHint,
- WStyle_Minimize = WindowMinimizeButtonHint,
- WStyle_Maximize = WindowMaximizeButtonHint,
- WStyle_MinMax = WStyle_Minimize | WStyle_Maximize,
- WStyle_Tool = Tool,
- WStyle_StaysOnTop = WindowStaysOnTopHint,
- WStyle_ContextHelp = WindowContextHelpButtonHint,
-
- // misc flags
- WPaintDesktop = 0,
- WPaintClever = 0,
-
- WX11BypassWM = X11BypassWindowManagerHint,
- WWinOwnDC = MSWindowsOwnDC,
- WMacSheet = Sheet,
- WMacDrawer = Drawer,
-
- WStyle_Splash = SplashScreen,
-
- WNoAutoErase = 0,
- WRepaintNoErase = 0,
- WNorthWestGravity = WStaticContents,
- WType_Modal = Dialog | WShowModal,
- WStyle_Dialog = Dialog,
- WStyle_NoBorderEx = FramelessWindowHint,
- WResizeNoErase = 0,
- WMacNoSheet = 0
-#endif
-
};
Q_DECLARE_FLAGS(WindowFlags, WindowType)
diff --git a/src/gui/kernel/qplatformwindow_qpa.cpp b/src/gui/kernel/qplatformwindow_qpa.cpp
index e3caba1331..92ab2ca781 100644
--- a/src/gui/kernel/qplatformwindow_qpa.cpp
+++ b/src/gui/kernel/qplatformwindow_qpa.cpp
@@ -48,7 +48,6 @@ class QPlatformWindowPrivate
{
QWindow *window;
QRect rect;
- Qt::WindowFlags flags;
friend class QPlatformWindow;
};
@@ -115,20 +114,10 @@ void QPlatformWindow::setVisible(bool visible)
Qt::WindowFlags QPlatformWindow::setWindowFlags(Qt::WindowFlags flags)
{
Q_D(QPlatformWindow);
- d->flags = flags;
return flags;
}
/*!
- Returns the effective window flags for this surface.
-*/
-Qt::WindowFlags QPlatformWindow::windowFlags() const
-{
- Q_D(const QPlatformWindow);
- return d->flags;
-}
-
-/*!
Reimplement in subclasses to return a handle to the native window
*/
WId QPlatformWindow::winId() const { return WId(0); }
diff --git a/src/gui/kernel/qplatformwindow_qpa.h b/src/gui/kernel/qplatformwindow_qpa.h
index a6edf190cf..1730f3d85e 100644
--- a/src/gui/kernel/qplatformwindow_qpa.h
+++ b/src/gui/kernel/qplatformwindow_qpa.h
@@ -71,7 +71,6 @@ public:
virtual void setVisible(bool visible);
virtual Qt::WindowFlags setWindowFlags(Qt::WindowFlags flags);
- virtual Qt::WindowFlags windowFlags() const;
virtual WId winId() const;
virtual void setParent(const QPlatformWindow *window);
diff --git a/src/gui/kernel/qwidget_qpa.cpp b/src/gui/kernel/qwidget_qpa.cpp
index 855397e500..d4032c49d6 100644
--- a/src/gui/kernel/qwidget_qpa.cpp
+++ b/src/gui/kernel/qwidget_qpa.cpp
@@ -93,10 +93,11 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
QWindow *win = topData()->window;
- // translate window type
-// window->setWindowType();
+ win->setWindowFlags(data.window_flags);
win->create();
+ data.window_flags = win->windowFlags();
+
if (!surface ) {
if (win) {
surface = QApplicationPrivate::platformIntegration()->createWindowSurface(win, win->winId());
@@ -105,8 +106,6 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
}
}
-// data.window_flags = q->windowHandle()->setWindowFlags(data.window_flags);
-
setWinId(win->winId());
// first check children. and create them if necessary
@@ -195,8 +194,8 @@ void QWidgetPrivate::setParent_sys(QWidget *newparent, Qt::WindowFlags f)
}
bool explicitlyHidden = q->testAttribute(Qt::WA_WState_Hidden) && q->testAttribute(Qt::WA_WState_ExplicitShowHide);
-
- // Reparenting toplevel to child
+
+ // Reparenting toplevel to child
if (!(f&Qt::Window) && (oldFlags&Qt::Window) && !q->testAttribute(Qt::WA_NativeWindow)) {
//qDebug() << "setParent_sys() change from toplevel";
q->destroy();
@@ -207,13 +206,6 @@ void QWidgetPrivate::setParent_sys(QWidget *newparent, Qt::WindowFlags f)
q->setAttribute(Qt::WA_WState_Visible, false);
q->setAttribute(Qt::WA_WState_Hidden, false);
- if (f & Qt::Window) {
- //qDebug() << "setParent_sys" << q << newparent << hex << f;
-// if (QPlatformWindow *window = q->platformWindow())
-// data.window_flags = window->setWindowFlags(data.window_flags);
-// Q_ASSERT(false);
- }
-
if (q->isWindow() || (!newparent || newparent->isVisible()) || explicitlyHidden)
q->setAttribute(Qt::WA_WState_Hidden);
q->setAttribute(Qt::WA_WState_ExplicitShowHide, explicitlyHidden);
diff --git a/src/gui/kernel/qwindow_qpa.cpp b/src/gui/kernel/qwindow_qpa.cpp
index f33ff90ad2..163b72fd81 100644
--- a/src/gui/kernel/qwindow_qpa.cpp
+++ b/src/gui/kernel/qwindow_qpa.cpp
@@ -57,7 +57,7 @@ class QWindowPrivate : public QObjectPrivate
public:
QWindowPrivate()
: QObjectPrivate()
- , windowType(QWindow::Window)
+ , windowFlags(Qt::Window)
, surfaceType(QWindow::RasterSurface)
, platformWindow(0)
, glContext(0)
@@ -71,7 +71,7 @@ public:
}
- QWindow::WindowType windowType;
+ Qt::WindowFlags windowFlags;
QWindow::SurfaceType surfaceType;
QPlatformWindow *platformWindow;
@@ -116,8 +116,10 @@ void QWindow::setVisible(bool visible)
void QWindow::create()
{
Q_D(QWindow);
- if (!d->platformWindow)
+ if (!d->platformWindow) {
d->platformWindow = QApplicationPrivate::platformIntegration()->createPlatformWindow(this);
+ d->windowFlags = d->platformWindow->setWindowFlags(d->windowFlags);
+ }
Q_ASSERT(d->platformWindow);
}
@@ -172,16 +174,19 @@ QWindow::SurfaceType QWindow::surfaceType() const
return d->surfaceType;
}
-void QWindow::setWindowType(WindowType type)
+void QWindow::setWindowFlags(Qt::WindowFlags flags)
{
Q_D(QWindow);
- d->windowType = type;
+ if (d->platformWindow)
+ d->windowFlags = d->platformWindow->setWindowFlags(flags);
+ else
+ d->windowFlags = flags;
}
-QWindow::WindowType QWindow::type() const
+Qt::WindowFlags QWindow::windowFlags() const
{
Q_D(const QWindow);
- return d->windowType;
+ return d->windowFlags;
}
void QWindow::setWindowTitle(const QString &title)
diff --git a/src/gui/kernel/qwindow_qpa.h b/src/gui/kernel/qwindow_qpa.h
index d9bd2950d1..fc73b1b93c 100644
--- a/src/gui/kernel/qwindow_qpa.h
+++ b/src/gui/kernel/qwindow_qpa.h
@@ -76,17 +76,6 @@ class Q_GUI_EXPORT QWindow : public QObject
Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle)
public:
- enum WindowType {
- Window,
- Dialog,
- Popup,
- Tool,
- SplashScreen,
- ToolTip,
- Sheet,
- Drawer
- };
-
enum SurfaceType {
RasterSurface,
OpenGLSurface
@@ -112,8 +101,8 @@ public:
void setSurfaceType(SurfaceType type);
SurfaceType surfaceType() const;
- void setWindowType(WindowType type);
- WindowType type() const;
+ void setWindowFlags(Qt::WindowFlags flags);
+ Qt::WindowFlags windowFlags() const;
QString windowTitle() const;
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index bc794446b2..15c6159155 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -408,7 +408,7 @@ Qt::WindowFlags QXcbWindow::setWindowFlags(Qt::WindowFlags flags)
Q_XCB_CALL(xcb_change_window_attributes(xcb_connection(), m_window, mask, values));
}
- return QPlatformWindow::setWindowFlags(flags);
+ return flags;
}
void QXcbWindow::setNetWmWindowTypes(Qt::WindowFlags flags)