diff options
-rw-r--r-- | DEPENDENCIES | 3 | ||||
-rw-r--r-- | lumina-wm-INCOMPLETE/LXcbEventFilter.cpp | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/DEPENDENCIES b/DEPENDENCIES index 3cf2c836..31199420 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -81,6 +81,9 @@ X.org and XCB extensions (possibly the XLib libraries above during the transitio libxrender-dev libxcb-image0-dev + These additional dependencies are needed to build the window manager: + libxcb-screensaver0-dev + These packages are required for running Lumina on Linux fluxbox kde-style-oxygen diff --git a/lumina-wm-INCOMPLETE/LXcbEventFilter.cpp b/lumina-wm-INCOMPLETE/LXcbEventFilter.cpp index 511cf467..90b20c6d 100644 --- a/lumina-wm-INCOMPLETE/LXcbEventFilter.cpp +++ b/lumina-wm-INCOMPLETE/LXcbEventFilter.cpp @@ -30,10 +30,21 @@ EventFilter::EventFilter() : QObject(){ void EventFilter::start(){ QCoreApplication::instance()->installNativeEventFilter(EF); + xcb_generic_error_t *status; + xcb_connection_t *my_connection; + xcb_void_cookie_t window_attributes; + const unsigned int *returned; //Also ensure it gets root window events - //Need the "real" root window (not the virtual root which Qt might return - if( 0!= xcb_request_check( QX11Info::connection(), xcb_change_window_attributes_checked(QX11Info::connection(), L_XCB::root, XCB_CW_EVENT_MASK, (uint32_t[]){ROOT_EVENT_MASK} ) ) ){ + //Need the "real" root window (not the virtual root which Qt might return + my_connection = QX11Info::connection(); + returned = (uint32_t *) ROOT_EVENT_MASK; + window_attributes = xcb_change_window_attributes_checked(my_connection, L_XCB::root, XCB_CW_EVENT_MASK, returned); + status = xcb_request_check(my_connection, window_attributes); + + // if( 0!= xcb_request_check( QX11Info::connection(), xcb_change_window_attributes_checked(QX11Info::connection(), L_XCB::root, XCB_CW_EVENT_MASK, (uint32_t[]){ROOT_EVENT_MASK} ) ) ){ + if (status) + { qCritical() << "[ERROR] Unable to setup WM event retrieval. Is another WM running?"; exit(1); } |