summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2012-07-17 23:44:01 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-25 00:59:35 +0200
commitcd398431e370eddb80707e4aa195453036598d67 (patch)
tree4b62d6994937e08ba97896e2310283bfb96a8fa6
parent597b99305e7c46ffcc83c60b7412bdff4e888500 (diff)
QXcbWindow::setMask(): Check for SHAPE extension
If the SHAPE extension is not available and we try to use it, the xcb connection will shut down and go into an error state. This is bad because there would be no error message that would give a hint on what went wrong. Change-Id: I1a6734bd146ca179a990b6ce896813bf76007b66 Signed-off-by: Uli Schlachter <psychon@znc.in> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 55ba0459a8..d07442e4ef 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -1718,6 +1718,8 @@ static inline xcb_rectangle_t qRectToXCBRectangle(const QRect &r)
void QXcbWindow::setMask(const QRegion &region)
{
+ if (!connection()->hasXShape())
+ return;
if (region.isEmpty()) {
xcb_shape_mask(connection()->xcb_connection(), XCB_SHAPE_SO_SET,
XCB_SHAPE_SK_BOUNDING, xcb_window(), 0, 0, XCB_NONE);