Commit 040f6479 authored by o9000's avatar o9000

Fix regression in resizing logic (taskbar_distribute_size now works correctly...

Fix regression in resizing logic (taskbar_distribute_size now works correctly when the taskbar is completely empty)
parent ce0acdbd
......@@ -490,21 +490,34 @@ gboolean resize_panel(void *obj)
}
// Distribute the remaining size between tasks
int task_size = total_size / MAX(num_tasks, 1);
for (int i = 0; i < panel->num_desktops; i++) {
Taskbar *taskbar = &panel->taskbar[i];
if (!taskbar->area.on_screen)
continue;
for (GList *l = taskbar->area.children; l; l = l->next) {
Area *child = (Area *)l->data;
if (!child->on_screen)
if (num_tasks > 0) {
int task_size = total_size / num_tasks;
for (int i = 0; i < panel->num_desktops; i++) {
Taskbar *taskbar = &panel->taskbar[i];
if (!taskbar->area.on_screen)
continue;
if (taskbarname_enabled && l == taskbar->area.children)
for (GList *l = taskbar->area.children; l; l = l->next) {
Area *child = (Area *)l->data;
if (!child->on_screen)
continue;
if (taskbarname_enabled && l == taskbar->area.children)
continue;
if (panel_horizontal)
taskbar->area.width += task_size;
else
taskbar->area.height += task_size;
}
}
} else {
// No tasks => expand the first visible taskbar
for (int i = 0; i < panel->num_desktops; i++) {
Taskbar *taskbar = &panel->taskbar[i];
if (!taskbar->area.on_screen)
continue;
if (panel_horizontal)
taskbar->area.width += task_size;
taskbar->area.width += total_size;
else
taskbar->area.height += task_size;
taskbar->area.height += total_size;
}
}
for (int i = 0; i < panel->num_desktops; i++) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment