- int pixel_width, modulo_width=0;
- int taskbar_width;
-
- // new task width for 'desktop'
- task_count = g_slist_length(taskbar->area.list);
- if (!task_count) pixel_width = panel->g_task.maximum_width;
- else {
- taskbar_width = taskbar->area.width - (2 * border_width) - (2 * panel->g_taskbar.area.paddingxlr);
- if (task_count>1) taskbar_width -= ((task_count-1) * panel->g_taskbar.area.paddingx);
-
- pixel_width = taskbar_width / task_count;
- if (pixel_width > panel->g_task.maximum_width)
- pixel_width = panel->g_task.maximum_width;
- else
- modulo_width = taskbar_width % task_count;
- }
-
- taskbar->task_width = pixel_width;
- taskbar->task_modulo = modulo_width;
- taskbar->text_width = pixel_width - panel->g_task.text_posx - panel->g_task.area.bg->border.width - panel->g_task.area.paddingx;
-
- // change pos_x and width for all tasks
- for (l = taskbar->area.list; l ; l = l->next) {
- tsk = l->data;
- if (!tsk->area.on_screen) continue;
- set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
- tsk->area.width = pixel_width;
-// TODO : move later (when posx is known)
-// long value[] = { panel->posx+x, panel->posy, pixel_width, panel->area.height };
-// XChangeProperty (server.dsp, tsk->win, server.atom._NET_WM_ICON_GEOMETRY, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)value, 4);
-
- if (modulo_width) {
- tsk->area.width++;
- modulo_width--;
- }
+ resize_by_layout(obj, panel->g_task.maximum_width);
+
+ text_width = panel->g_task.maximum_width;
+ if (taskbar->area.list != NULL) {
+ tsk = taskbar->area.list->data;
+ text_width = tsk->area.width;