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
|
// Given a pointer to the active task (active_task) and a pointer
|
||||||
// to the task that is currently under the mouse (current_task),
|
// to the task that is currently under the mouse (current_task),
|
||||||
// return a pointer to the active task that is on the same desktop
|
// returns a pointer to the active task.
|
||||||
// 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.
|
|
||||||
Task *find_active_task(Task *current_task, Task *active_task)
|
Task *find_active_task(Task *current_task, Task *active_task)
|
||||||
{
|
{
|
||||||
if (active_task == 0)
|
if (active_task == NULL)
|
||||||
return current_task;
|
return current_task;
|
||||||
if (active_task->desktop != ALLDESKTOP)
|
|
||||||
return active_task;
|
|
||||||
if (current_task == 0)
|
|
||||||
return active_task;
|
|
||||||
|
|
||||||
GSList *l0;
|
GSList *l0;
|
||||||
Task *tsk;
|
Task *tsk;
|
||||||
Taskbar* tskbar = current_task->area.parent;
|
Taskbar* tskbar = current_task->area.parent;
|
||||||
|
|
||||||
l0 = tskbar->area.list;
|
l0 = tskbar->area.list;
|
||||||
if (taskbarname_enabled) l0 = l0->next;
|
if (taskbarname_enabled)
|
||||||
|
l0 = l0->next;
|
||||||
for (; l0 ; l0 = l0->next) {
|
for (; l0 ; l0 = l0->next) {
|
||||||
tsk = l0->data;
|
tsk = l0->data;
|
||||||
if (tsk->win == active_task->win)
|
if (tsk->win == active_task->win)
|
||||||
return tsk;
|
return tsk;
|
||||||
}
|
}
|
||||||
return active_task;
|
|
||||||
|
return current_task;
|
||||||
}
|
}
|
||||||
|
|
||||||
Task *next_task(Task *tsk)
|
Task *next_task(Task *tsk)
|
||||||
|
|
Loading…
Reference in a new issue