summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbwindow.cpp')
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 0dba120e30..147bac01dd 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -363,14 +363,9 @@ void QXcbWindow::create()
return result;
};
+ xcb_colormap_t cmap = XCB_COLORMAP_NONE;
if ((window()->supportsOpenGL() && haveOpenGL()) || m_format.hasAlpha()) {
- m_cmap = xcb_generate_id(xcb_connection());
- xcb_create_colormap(xcb_connection(),
- XCB_COLORMAP_ALLOC_NONE,
- m_cmap,
- xcb_parent_id,
- m_visualId);
-
+ cmap = platformScreen->colormapForVisual(m_visualId);
mask |= XCB_CW_COLORMAP;
}
@@ -381,7 +376,7 @@ void QXcbWindow::create()
type == Qt::Popup || type == Qt::ToolTip || (window()->flags() & Qt::BypassWindowManagerHint),
type == Qt::Popup || type == Qt::Tool || type == Qt::SplashScreen || type == Qt::ToolTip || type == Qt::Drawer,
defaultEventMask,
- m_cmap
+ cmap
};
m_window = xcb_generate_id(xcb_connection());
@@ -552,9 +547,7 @@ void QXcbWindow::destroy()
xcb_destroy_window(xcb_connection(), m_window);
m_window = 0;
}
- if (m_cmap) {
- xcb_free_colormap(xcb_connection(), m_cmap);
- }
+
m_mapped = false;
if (m_pendingSyncRequest)