- int taskbar_width, modulo_width = 0;
-
- taskbar_width = panel->area.width - (2 * panel->area.paddingxlr) - (2 * panel->area.bg->border.width);
- if (panel->clock.area.on_screen && panel->clock.area.width)
- taskbar_width -= (panel->clock.area.width + panel->area.paddingx);
- #ifdef ENABLE_BATTERY
- if (panel->battery.area.on_screen && panel->battery.area.width)
- taskbar_width -= (panel->battery.area.width + panel->area.paddingx);
- #endif
- // TODO : systray only on first panel. search better implementation !
- if (systray.area.on_screen && systray.area.width && panel == &panel1[0])
- taskbar_width -= (systray.area.width + panel->area.paddingx);
-
- if (panel_mode == MULTI_DESKTOP) {
- int width = taskbar_width - ((panel->nb_desktop-1) * panel->area.paddingx);
- taskbar_width = width / panel->nb_desktop;
- modulo_width = width % panel->nb_desktop;
- }
-
- // change posx and width for all taskbar
- int i, posx;
- posx = panel->area.bg->border.width + panel->area.paddingxlr;
- for (i=0 ; i < panel->nb_desktop ; i++) {
- panel->taskbar[i].area.posx = posx;
- panel->taskbar[i].area.width = taskbar_width;
- panel->taskbar[i].area.resize = 1;
- if (modulo_width) {
- panel->taskbar[i].area.width++;
- modulo_width--;
- }
- //printf("taskbar %d : posx %d, width, %d, posy %d\n", i, posx, panel->taskbar[i].area.width, posx + panel->taskbar[i].area.width);
- if (panel_mode == MULTI_DESKTOP)
- posx += panel->taskbar[i].area.width + panel->area.paddingx;
- }