taskbar: fix task cycling bug in multi_desktop mode
git-svn-id: http://tint2.googlecode.com/svn/trunk@662 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
parent
9ac902b62b
commit
c59f239999
1 changed files with 6 additions and 12 deletions
|
@ -416,32 +416,26 @@ void on_change_task (void *obj)
|
|||
|
||||
// Given a pointer to the active task (active_task) and a pointer
|
||||
// to the task that is currently under the mouse (current_task),
|
||||
// return a pointer to the active task that is on the same desktop
|
||||
// as current_task. Normally this is simply active_task, except when
|
||||
// it is set to appear on all desktops. In that case we search for
|
||||
// another Task on current_task's taskbar, with the same window as
|
||||
// active_task.
|
||||
// returns a pointer to the active task.
|
||||
Task *find_active_task(Task *current_task, Task *active_task)
|
||||
{
|
||||
if (active_task == 0)
|
||||
if (active_task == NULL)
|
||||
return current_task;
|
||||
if (active_task->desktop != ALLDESKTOP)
|
||||
return active_task;
|
||||
if (current_task == 0)
|
||||
return active_task;
|
||||
|
||||
GSList *l0;
|
||||
Task *tsk;
|
||||
Taskbar* tskbar = current_task->area.parent;
|
||||
|
||||
l0 = tskbar->area.list;
|
||||
if (taskbarname_enabled) l0 = l0->next;
|
||||
if (taskbarname_enabled)
|
||||
l0 = l0->next;
|
||||
for (; l0 ; l0 = l0->next) {
|
||||
tsk = l0->data;
|
||||
if (tsk->win == active_task->win)
|
||||
return tsk;
|
||||
}
|
||||
return active_task;
|
||||
|
||||
return current_task;
|
||||
}
|
||||
|
||||
Task *next_task(Task *tsk)
|
||||
|
|
Loading…
Reference in a new issue