diff --git a/libtaskmanager/groupmanager.cpp b/libtaskmanager/groupmanager.cpp --- a/libtaskmanager/groupmanager.cpp +++ b/libtaskmanager/groupmanager.cpp @@ -645,6 +645,12 @@ show = true; } else if (task->info().windowType(NET::UtilityMask) == NET::Utility) { removeTask(task); + } else if (abstractGroupingStrategy) { + // Group tasks again when they no longer demands attention. + TaskItem *item = qobject_cast(currentRootGroup()->getMemberByWId(task->window())); + if (item) { + abstractGroupingStrategy->handleItem(item); + } } } @@ -723,11 +729,11 @@ connect(TaskManager::self(), SIGNAL(activityChanged(QString)), this, SLOT(currentActivityChanged(QString))); } - - connect(TaskManager::self(), SIGNAL(windowChanged(::TaskManager::Task *, ::TaskManager::TaskChanges)), - this, SLOT(taskChanged(::TaskManager::Task *, ::TaskManager::TaskChanges))); } + connect(TaskManager::self(), SIGNAL(windowChanged(::TaskManager::Task *, ::TaskManager::TaskChanges)), + this, SLOT(taskChanged(::TaskManager::Task *, ::TaskManager::TaskChanges))); + TaskManager::self()->setTrackGeometry(d->showOnlyCurrentScreen, d->configToken); if (!d->showOnlyCurrentScreen) { diff --git a/libtaskmanager/task.cpp b/libtaskmanager/task.cpp --- a/libtaskmanager/task.cpp +++ b/libtaskmanager/task.cpp @@ -50,6 +50,9 @@ // try to load icon via net_wm refreshIcon(); refreshActivities(); + + // initial demands attention + d->demandedAttention = demandsAttention(); } Task::~Task()