X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftint2;a=blobdiff_plain;f=src%2Ftaskbar%2Ftask.c;h=bdc0fde7b649c12e0333be2e801a63b63c7141c1;hp=7a5212e794fe9191e8b240c93a11d80f07f2bf99;hb=54c21917514f31f3c69ef747e609e93dc4b38dbe;hpb=6e668134333e653f2a856efbd215688cea870dc9 diff --git a/src/taskbar/task.c b/src/taskbar/task.c index 7a5212e..bdc0fde 100644 --- a/src/taskbar/task.c +++ b/src/taskbar/task.c @@ -159,12 +159,12 @@ void remove_task (Task *tsk) } -void get_title(Task *tsk) +int get_title(Task *tsk) { Panel *panel = tsk->area.panel; char *title, *name; - if (!panel->g_task.text && !g_tooltip.enabled) return; + if (!panel->g_task.text && !g_tooltip.enabled) return 0; name = server_get_property (tsk->win, server.atom._NET_WM_VISIBLE_NAME, server.atom.UTF8_STRING, 0); if (!name || !strlen(name)) { @@ -184,9 +184,16 @@ void get_title(Task *tsk) else title[0] = 0; strcat(title, name); if (name) XFree (name); - - if (tsk->title) - free(tsk->title); + + if (tsk->title) { + // check unecessary title change + if (strcmp(tsk->title, title) == 0) { + free(title); + return 0; + } + else + free(tsk->title); + } tsk->title = title; GPtrArray* task_group = task_get_tasks(tsk->win); @@ -198,7 +205,7 @@ void get_title(Task *tsk) set_task_redraw(tsk2); } } - set_task_redraw(tsk); + return 1; } @@ -303,7 +310,6 @@ void get_icon (Task *tsk) set_task_redraw(tsk2); } } - set_task_redraw(tsk); }