diff options
author | Ken Moore <ken@pcbsd.org> | 2015-01-05 14:31:43 -0500 |
---|---|---|
committer | Ken Moore <ken@pcbsd.org> | 2015-01-05 14:31:43 -0500 |
commit | ebd5faf993fd3ea8f6e929df6f3288cfa1d4b752 (patch) | |
tree | b6fd32a17f6a138c804884bf2cde0dde8ab09aa8 /lumina-desktop/LXcbEventFilter.cpp | |
parent | Quick checkpoint of additional XCB improvements/fixes. Still having an issue ... (diff) | |
download | lumina-ebd5faf993fd3ea8f6e929df6f3288cfa1d4b752.tar.gz lumina-ebd5faf993fd3ea8f6e929df6f3288cfa1d4b752.tar.bz2 lumina-ebd5faf993fd3ea8f6e929df6f3288cfa1d4b752.zip |
Clean up the Panel/Taskmanager XCB usage quite a bit. Now the panel is "seen" by fluxbox when a window is maximized, and the task manager works with the highly asynchronous XCB events.
Diffstat (limited to 'lumina-desktop/LXcbEventFilter.cpp')
-rw-r--r-- | lumina-desktop/LXcbEventFilter.cpp | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/lumina-desktop/LXcbEventFilter.cpp b/lumina-desktop/LXcbEventFilter.cpp index eb56cb89..84948084 100644 --- a/lumina-desktop/LXcbEventFilter.cpp +++ b/lumina-desktop/LXcbEventFilter.cpp @@ -35,21 +35,15 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag switch( ev->response_type & ~0x80){ //============================== case XCB_PROPERTY_NOTIFY: - qDebug() << "Property Notify Event:"; - qDebug() << " - Root Window:" << QX11Info::appRootWindow(); - qDebug() << " - Given Window:" << ((xcb_property_notify_event_t*)ev)->window; - //System-wide property change + //qDebug() << "Property Notify Event:"; + //qDebug() << " - Root Window:" << QX11Info::appRootWindow(); + //qDebug() << " - Given Window:" << ((xcb_property_notify_event_t*)ev)->window; + //System-specific proprty change if( SysNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){ //Update the status/list of all running windows session->WindowPropertyEvent(); - } + //window-specific property change - if( ((xcb_property_notify_event_t*)ev)->atom == session->XCB->EWMH._NET_WM_STATE ){ - if( session->XCB->WindowIsMaximized( ((xcb_property_notify_event_t*)ev)->window ) ){ - //Quick fix for maximized windows (since Fluxbox is not doing the STRUT detection properly) - session->adjustWindowGeom( ((xcb_property_notify_event_t*)ev)->window ); - } - session->WindowPropertyEvent( ((xcb_property_notify_event_t*)ev)->window ); }else if( WinNotifyAtoms.contains( ((xcb_property_notify_event_t*)ev)->atom ) ){ //Ping only that window session->WindowPropertyEvent( ((xcb_property_notify_event_t*)ev)->window ); @@ -57,9 +51,9 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag break; //============================== case XCB_CLIENT_MESSAGE: - qDebug() << "Client Message Event"; - qDebug() << " - Root Window:" << QX11Info::appRootWindow(); - qDebug() << " - Given Window:" << ((xcb_client_message_event_t*)ev)->window; + //qDebug() << "Client Message Event"; + //qDebug() << " - Root Window:" << QX11Info::appRootWindow(); + //qDebug() << " - Given Window:" << ((xcb_client_message_event_t*)ev)->window; if( ((xcb_client_message_event_t*)ev)->type == _NET_SYSTEM_TRAY_OPCODE && ((xcb_client_message_event_t*)ev)->format == 32){ //data32[0] is timestamp, [1] is opcode, [2] is window handle if(SYSTEM_TRAY_REQUEST_DOCK == ((xcb_client_message_event_t*)ev)->data.data32[1]){ @@ -68,12 +62,12 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag //Ignore the System Tray messages at the moment (let the WM handle it) //window-specific property changes - }else if( ((xcb_client_message_event_t*)ev)->type == session->XCB->EWMH._NET_WM_STATE ){ + /*}else if( ((xcb_client_message_event_t*)ev)->type == session->XCB->EWMH._NET_WM_STATE ){ if( session->XCB->WindowIsMaximized( ((xcb_client_message_event_t*)ev)->window ) ){ //Quick fix for maximized windows (since Fluxbox is not doing the STRUT detection properly) session->adjustWindowGeom( ((xcb_client_message_event_t*)ev)->window ); } - session->WindowPropertyEvent( ((xcb_client_message_event_t*)ev)->window ); + session->WindowPropertyEvent( ((xcb_client_message_event_t*)ev)->window );*/ }else if( WinNotifyAtoms.contains( ((xcb_client_message_event_t*)ev)->type ) ){ //Ping only that window session->WindowPropertyEvent( ((xcb_client_message_event_t*)ev)->window ); @@ -81,17 +75,17 @@ bool XCBEventFilter::nativeEventFilter(const QByteArray &eventType, void *messag break; //============================== case XCB_DESTROY_NOTIFY: - qDebug() << "Window Closed Event"; + //qDebug() << "Window Closed Event"; session->WindowClosedEvent( ( (xcb_destroy_notify_event_t*)ev )->window ); break; //============================== case XCB_CONFIGURE_NOTIFY: - qDebug() << "Configure Notify Event"; + //qDebug() << "Configure Notify Event"; session->WindowConfigureEvent( ((xcb_configure_notify_event_t*)ev)->window ); break; //============================== case XCB_SELECTION_CLEAR: - qDebug() << "Selection Clear Event"; + //qDebug() << "Selection Clear Event"; session->WindowSelectionClearEvent( ((xcb_selection_clear_event_t*)ev)->owner ); break; //============================== |