aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/LXcbEventFilter.cpp
diff options
context:
space:
mode:
authorKen Moore <ken@pcbsd.org>2015-01-05 14:31:43 -0500
committerKen Moore <ken@pcbsd.org>2015-01-05 14:31:43 -0500
commitebd5faf993fd3ea8f6e929df6f3288cfa1d4b752 (patch)
treeb6fd32a17f6a138c804884bf2cde0dde8ab09aa8 /lumina-desktop/LXcbEventFilter.cpp
parentQuick checkpoint of additional XCB improvements/fixes. Still having an issue ... (diff)
downloadlumina-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.cpp32
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;
//==============================
bgstack15