+// initialise taskbar posx and width
+void resize_taskbar()
+{
+ int taskbar_width, modulo_width, taskbar_on_screen;
+
+ if (panel.mode == MULTI_DESKTOP) taskbar_on_screen = panel.nb_desktop;
+ else taskbar_on_screen = panel.nb_monitor;
+
+ taskbar_width = panel.area.width - (2 * panel.area.paddingx) - (2 * panel.area.border.width);
+ if (panel.clock.time1_format)
+ taskbar_width -= (panel.clock.area.width + panel.area.paddingx);
+ taskbar_width = (taskbar_width - ((taskbar_on_screen-1) * panel.area.paddingx)) / taskbar_on_screen;
+
+ if (taskbar_on_screen > 1)
+ modulo_width = (taskbar_width - ((taskbar_on_screen-1) * panel.area.paddingx)) % taskbar_on_screen;
+ else
+ modulo_width = 0;
+
+ int posx, modulo, i, nb;
+ nb = panel.nb_desktop * panel.nb_monitor;
+ for (i=0 ; i < nb ; i++) {
+ if ((i % taskbar_on_screen) == 0) {
+ posx = panel.area.border.width + panel.area.paddingx;
+ modulo = modulo_width;
+ }
+ else posx += taskbar_width + panel.area.paddingx;
+
+ panel.taskbar[i].area.posx = posx;
+ panel.taskbar[i].area.width = taskbar_width;
+ if (modulo) {
+ panel.taskbar[i].area.width++;
+ modulo--;
+ }
+
+ resize_tasks(&panel.taskbar[i]);
+ }
+}
+
+