]> Dogcows Code - chaz/tint2/commitdiff
*fix* segfault when cycling through tasks and taskbarname is enabled
authorThierry Lorthiois <lorthiois@bbsoft.fr>
Mon, 7 Mar 2011 23:46:42 +0000 (23:46 +0000)
committerThierry Lorthiois <lorthiois@bbsoft.fr>
Mon, 7 Mar 2011 23:46:42 +0000 (23:46 +0000)
src/taskbar/task.c

index e03f69c60943e40aad3511812cbce8c332840701..4d717ac5b858710ba8d91bee87e4acf327e1eb10 100644 (file)
@@ -411,16 +411,17 @@ Task *next_task(Task *tsk)
        if (tsk == 0)
                return 0;
 
-       GSList *l0;
+       GSList *l0, *lfirst_tsk;
        Task *tsk1;
        Taskbar* tskbar = tsk->area.parent;
 
        l0 = tskbar->area.list;
        if (taskbarname_enabled) l0 = l0->next;
+       lfirst_tsk = l0;
        for (; l0 ; l0 = l0->next) {
                tsk1 = l0->data;
                if (tsk1 == tsk) {
-                       if (l0->next == 0) l0 = tskbar->area.list;
+                       if (l0->next == 0) l0 = lfirst_tsk;
                        else l0 = l0->next;
                        return l0->data;
                }
@@ -434,17 +435,18 @@ Task *prev_task(Task *tsk)
        if (tsk == 0)
                return 0;
 
-       GSList *l0;
+       GSList *l0, *lfirst_tsk;
        Task *tsk1, *tsk2;
        Taskbar* tskbar = tsk->area.parent;
 
        tsk2 = 0;
        l0 = tskbar->area.list;
        if (taskbarname_enabled) l0 = l0->next;
+       lfirst_tsk = l0;
        for (; l0 ; l0 = l0->next) {
                tsk1 = l0->data;
                if (tsk1 == tsk) {
-                       if (l0 == tskbar->area.list) {
+                       if (l0 == lfirst_tsk) {
                                l0 = g_slist_last ( l0 );
                                tsk2 = l0->data;
                        }
This page took 0.025301 seconds and 4 git commands to generate.