diff options
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbwindow.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 39 |
1 files changed, 8 insertions, 31 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 78d000c774..3f0493669f 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -314,22 +314,6 @@ static const char *wm_window_role_property_id = "_q_xcb_wm_window_role"; QXcbWindow::QXcbWindow(QWindow *window) : QPlatformWindow(window) - , m_window(0) - , m_cmap(0) - , m_syncCounter(0) - , m_gravity(XCB_GRAVITY_STATIC) - , m_mapped(false) - , m_transparent(false) - , m_usingSyncProtocol(false) - , m_deferredActivation(false) - , m_embedded(false) - , m_alertState(false) - , m_netWmUserTimeWindow(XCB_NONE) - , m_dirtyFrameMargins(false) - , m_lastWindowStateEvent(-1) - , m_syncState(NoSyncNeeded) - , m_pendingSyncRequest(0) - , m_currentBitmapCursor(XCB_CURSOR_NONE) { setConnection(xcbScreen()->connection()); } @@ -357,11 +341,6 @@ enum { void QXcbWindow::create() { - if (window()->type() == Qt::ForeignWindow) { - m_window = window()->winId(); - return; - } - destroy(); m_windowState = Qt::WindowNoState; @@ -413,7 +392,7 @@ void QXcbWindow::create() xcb_window_t xcb_parent_id = platformScreen->root(); if (parent()) { xcb_parent_id = static_cast<QXcbWindow *>(parent())->xcb_window(); - m_embedded = parent()->window()->type() == Qt::ForeignWindow; + m_embedded = parent()->isForeignWindow(); QSurfaceFormat parentFormat = parent()->window()->requestedFormat(); if (window()->surfaceType() != QSurface::OpenGLSurface && parentFormat.hasAlpha()) { @@ -606,9 +585,10 @@ QXcbWindow::~QXcbWindow() if (m_currentBitmapCursor != XCB_CURSOR_NONE) { xcb_free_cursor(xcb_connection(), m_currentBitmapCursor); } - if (window()->type() != Qt::ForeignWindow) - destroy(); - else { + + destroy(); + + if (isForeignWindow()) { if (connection()->mouseGrabber() == this) connection()->setMouseGrabber(Q_NULLPTR); if (connection()->mousePressWindow() == this) @@ -1524,7 +1504,7 @@ void QXcbWindow::setParent(const QPlatformWindow *parent) if (parent) { const QXcbWindow *qXcbParent = static_cast<const QXcbWindow *>(parent); xcb_parent_id = qXcbParent->xcb_window(); - m_embedded = qXcbParent->window()->type() == Qt::ForeignWindow; + m_embedded = qXcbParent->isForeignWindow(); } else { xcb_parent_id = xcbScreen()->root(); m_embedded = false; @@ -2157,12 +2137,9 @@ bool QXcbWindow::isExposed() const return m_mapped; } -bool QXcbWindow::isEmbedded(const QPlatformWindow *parentWindow) const +bool QXcbWindow::isEmbedded() const { - if (!m_embedded) - return false; - - return parentWindow ? (parentWindow == parent()) : true; + return m_embedded; } QPoint QXcbWindow::mapToGlobal(const QPoint &pos) const |