aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.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/panel-plugins/taskmanager/LTaskManagerPlugin.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/panel-plugins/taskmanager/LTaskManagerPlugin.cpp')
-rw-r--r--lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp b/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp
index 67378c68..1785c681 100644
--- a/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp
+++ b/lumina-desktop/panel-plugins/taskmanager/LTaskManagerPlugin.cpp
@@ -34,6 +34,8 @@ void LTaskManagerPlugin::UpdateButtons(){
//Get the current window list
QList<WId> winlist = LSession::handle()->XCB->WindowList();
+ //Do not change the status of the previously active window if it just changed to a non-visible window
+ bool skipActive = !winlist.contains( LSession::handle()->XCB->ActiveWindow() );
//qDebug() << "Update Buttons:" << winlist;
if(updating > ctime){ return; } //another thread kicked off already - stop this one
//Now go through all the current buttons first
@@ -71,7 +73,9 @@ void LTaskManagerPlugin::UpdateButtons(){
if(!updated){
//qDebug() << "Update Button:" << i;
if(updating > ctime){ return; } //another thread kicked off already - stop this one
- QTimer::singleShot(1,BUTTONS[i], SLOT(UpdateButton()) ); //keep moving on
+ if(!skipActive || !BUTTONS[i]->isActive()){
+ QTimer::singleShot(1,BUTTONS[i], SLOT(UpdateButton()) ); //keep moving on
+ }
}
}
//Now go through the remaining windows
bgstack15