author | zecke <zecke> | 2002-03-25 20:17:29 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-03-25 20:17:29 (UTC) |
commit | b001d834cd1259ea17fd1faf82111a1efdf607db (patch) (side-by-side diff) | |
tree | 35da1df30a27e18837d317d949db234015cfdf32 | |
parent | 56f2a47633046a7b08fe59acfe646a648c006230 (diff) | |
download | opie-b001d834cd1259ea17fd1faf82111a1efdf607db.zip opie-b001d834cd1259ea17fd1faf82111a1efdf607db.tar.gz opie-b001d834cd1259ea17fd1faf82111a1efdf607db.tar.bz2 |
- remove old Icons from the taskbar (only when you start a new app )
-rw-r--r-- | core/launcher/launcher.cpp | 0 | ||||
-rw-r--r-- | core/launcher/mrulist.cpp | 36 |
2 files changed, 34 insertions, 2 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp index cf1a3c8..17a30e6 100644 --- a/core/launcher/launcher.cpp +++ b/core/launcher/launcher.cpp diff --git a/core/launcher/mrulist.cpp b/core/launcher/mrulist.cpp index 4daf7d2..6066dac 100644 --- a/core/launcher/mrulist.cpp +++ b/core/launcher/mrulist.cpp @@ -1,2 +1,3 @@ /********************************************************************** +** Copyright (C) 2002 Holger 'zecke' Freyther ** Copyright (C) 2000 Trolltech AS. All rights reserved. @@ -73,3 +74,31 @@ void MRUList::addTask( const AppLnk *appLnk ) return; + // ok we wan't to delete old icons from the taskbar + // get the window list and see which windows aren't there any more + QList<AppLnk> cleanUp; + cleanUp.setAutoDelete( TRUE ); + const QList<QWSWindow> &list = qwsServer->clientWindows(); + QWSWindow* w; + bool running = false; // to see what we should do + for ( ; i < task->count(); i++ ) { + AppLnk *t = task->at(i); + running = false; + for (QListIterator<QWSWindow> it(list); (w=it.current()); ++it) { + QString app = w->client()->identity(); + if( app == t->exec( ) ){ + running = true; + break; + } + } + if(!running ) { // gues what we do now + cleanUp.append( t); + } + } + // no do a clean up of these old icons + AppLnk *lnk; + for( lnk = cleanUp.first(); lnk != 0; lnk = cleanUp.next() ){ + task->remove( lnk ); + } + cleanUp.clear(); // should be deleted too + i = 0; for ( ; i < task->count(); i++ ) { @@ -86,3 +115,3 @@ void MRUList::addTask( const AppLnk *appLnk ) } - + // check which tasks are running and delete them from the list AppLnk *t = new AppLnk( *appLnk ); @@ -126,3 +155,5 @@ bool MRUList::quitOldApps() AppLnk *t = task->at(i); - if ( t->exec() == *it ) + if ( t->exec() == *it ){ + task->remove(i ); + delete t; Global::terminate(t); @@ -130,2 +161,3 @@ bool MRUList::quitOldApps() } + } return TRUE; |