Taskbar: add option to redistribute size in multi-desktop mode (useful especially when the taskbar is getting full on one desktop)

git-svn-id: http://tint2.googlecode.com/svn/trunk@673 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
o9000
2015-01-30 09:53:16 +00:00
committed by mrovi9000@gmail.com
parent 88e0e4fed8
commit 4e76c2bb5d
8 changed files with 112 additions and 4 deletions

View File

@@ -118,6 +118,11 @@ Task *add_task (Window win)
if (window_is_urgent(win))
add_urgent(new_tsk2);
if (panel_mode == MULTI_DESKTOP) {
Panel *panel = new_tsk2->area.panel;
panel->area.resize = 1;
}
return new_tsk2;
}
@@ -126,6 +131,11 @@ void remove_task (Task *tsk)
{
if (!tsk) return;
if (panel_mode == MULTI_DESKTOP) {
Panel *panel = tsk->area.panel;
panel->area.resize = 1;
}
Window win = tsk->win;
// free title and icon just for the first task

View File

@@ -42,6 +42,7 @@ GHashTable* win_to_task_table;
Task *task_active;
Task *task_drag;
int taskbar_enabled;
int taskbar_distribute_size;
guint win_hash(gconstpointer key) { return (guint)*((Window*)key); }
gboolean win_compare(gconstpointer a, gconstpointer b) { return (*((Window*)a) == *((Window*)b)); }
@@ -54,6 +55,7 @@ void default_taskbar()
urgent_timeout = 0;
urgent_list = 0;
taskbar_enabled = 0;
taskbar_distribute_size = 0;
default_taskbarname();
}
@@ -321,8 +323,11 @@ int resize_taskbar(void *obj)
text_width = panel->g_task.maximum_width;
GSList *l = taskbar->area.list;
if (taskbarname_enabled) l = l->next;
if (l != NULL) {
text_width = ((Task *)l->data)->area.width;
for (; l != NULL; l = l->next) {
if (((Task *)l->data)->area.on_screen) {
text_width = ((Task *)l->data)->area.width;
break;
}
}
taskbar->text_width = text_width - panel->g_task.text_posx - panel->g_task.area.bg->border.width - panel->g_task.area.paddingx;
}

View File

@@ -16,7 +16,7 @@ extern GHashTable* win_to_task_table;
extern Task *task_active;
extern Task *task_drag;
extern int taskbar_enabled;
extern int taskbar_distribute_size;
typedef struct {
// always start with area