From d17cfcde105e22a4d9e35fd4c692bb876ef310ae Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 14 Jul 2015 22:33:55 +0000 Subject: [PATCH] kdeui: prevent segmentation fault due to failed XOpenDisplay() --- kdeui/windowmanagement/kwindowsystem_x11.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/kdeui/windowmanagement/kwindowsystem_x11.cpp b/kdeui/windowmanagement/kwindowsystem_x11.cpp index 68f30497..98d3bfc4 100644 --- a/kdeui/windowmanagement/kwindowsystem_x11.cpp +++ b/kdeui/windowmanagement/kwindowsystem_x11.cpp @@ -811,21 +811,24 @@ void KWindowSystem::lowerWindow( WId win ) bool KWindowSystem::compositingActive() { + bool ret = false; if( QX11Info::display()) { init( INFO_BASIC ); if (s_d_func()->haveXfixes) { return s_d_func()->compositingEnabled; } else { create_atoms(); - return XGetSelectionOwner( QX11Info::display(), net_wm_cm ); + ret = XGetSelectionOwner( QX11Info::display(), net_wm_cm ); } } else { // work even without QApplication instance Display* dpy = XOpenDisplay( NULL ); - create_atoms( dpy ); - bool ret = XGetSelectionOwner( dpy, net_wm_cm ) != None; - XCloseDisplay( dpy ); - return ret; + if (dpy) { + create_atoms( dpy ); + ret = XGetSelectionOwner( dpy, net_wm_cm ) != None; + XCloseDisplay( dpy ); + } } + return ret; } QRect KWindowSystem::workArea( int desktop )