Merge taskbar_alignment from branch
This commit is contained in:
@@ -111,7 +111,7 @@ Task *add_task (Window win)
|
||||
}
|
||||
new_tsk2->icon_width = new_tsk.icon_width;
|
||||
new_tsk2->icon_height = new_tsk.icon_height;
|
||||
tskbar->area.list = g_slist_append(tskbar->area.list, new_tsk2);
|
||||
tskbar->area.list = g_list_append(tskbar->area.list, new_tsk2);
|
||||
tskbar->area.resize = 1;
|
||||
g_ptr_array_add(task_group, new_tsk2);
|
||||
//printf("add_task panel %d, desktop %d, task %s\n", i, j, new_tsk2->title);
|
||||
@@ -169,7 +169,7 @@ void remove_task (Task *tsk)
|
||||
for (i=0; i<task_group->len; ++i) {
|
||||
tsk2 = g_ptr_array_index(task_group, i);
|
||||
tskbar = tsk2->area.parent;
|
||||
tskbar->area.list = g_slist_remove(tskbar->area.list, tsk2);
|
||||
tskbar->area.list = g_list_remove(tskbar->area.list, tsk2);
|
||||
tskbar->area.resize = 1;
|
||||
if (tsk2 == task_active) task_active = 0;
|
||||
if (tsk2 == task_drag) task_drag = 0;
|
||||
@@ -424,15 +424,13 @@ Task *find_active_task(Task *current_task, Task *active_task)
|
||||
if (active_task == NULL)
|
||||
return current_task;
|
||||
|
||||
GSList *l0;
|
||||
Task *tsk;
|
||||
Taskbar* tskbar = current_task->area.parent;
|
||||
|
||||
l0 = tskbar->area.list;
|
||||
GList *l0 = tskbar->area.list;
|
||||
if (taskbarname_enabled)
|
||||
l0 = l0->next;
|
||||
for (; l0 ; l0 = l0->next) {
|
||||
tsk = l0->data;
|
||||
Task *tsk = l0->data;
|
||||
if (tsk->win == active_task->win)
|
||||
return tsk;
|
||||
}
|
||||
@@ -445,15 +443,13 @@ Task *next_task(Task *tsk)
|
||||
if (tsk == 0)
|
||||
return 0;
|
||||
|
||||
GSList *l0, *lfirst_tsk;
|
||||
Task *tsk1;
|
||||
Taskbar* tskbar = tsk->area.parent;
|
||||
|
||||
l0 = tskbar->area.list;
|
||||
GList *l0 = tskbar->area.list;
|
||||
if (taskbarname_enabled) l0 = l0->next;
|
||||
lfirst_tsk = l0;
|
||||
GList *lfirst_tsk = l0;
|
||||
for (; l0 ; l0 = l0->next) {
|
||||
tsk1 = l0->data;
|
||||
Task *tsk1 = l0->data;
|
||||
if (tsk1 == tsk) {
|
||||
if (l0->next == 0) l0 = lfirst_tsk;
|
||||
else l0 = l0->next;
|
||||
@@ -469,19 +465,18 @@ Task *prev_task(Task *tsk)
|
||||
if (tsk == 0)
|
||||
return 0;
|
||||
|
||||
GSList *l0, *lfirst_tsk;
|
||||
Task *tsk1, *tsk2;
|
||||
Taskbar* tskbar = tsk->area.parent;
|
||||
|
||||
tsk2 = 0;
|
||||
l0 = tskbar->area.list;
|
||||
GList *l0 = tskbar->area.list;
|
||||
if (taskbarname_enabled) l0 = l0->next;
|
||||
lfirst_tsk = l0;
|
||||
GList *lfirst_tsk = l0;
|
||||
for (; l0 ; l0 = l0->next) {
|
||||
tsk1 = l0->data;
|
||||
if (tsk1 == tsk) {
|
||||
if (l0 == lfirst_tsk) {
|
||||
l0 = g_slist_last ( l0 );
|
||||
l0 = g_list_last ( l0 );
|
||||
tsk2 = l0->data;
|
||||
}
|
||||
return tsk2;
|
||||
|
||||
@@ -47,6 +47,7 @@ int taskbar_distribute_size;
|
||||
int hide_inactive_tasks;
|
||||
int hide_task_diff_monitor;
|
||||
int taskbar_sort_method;
|
||||
int taskbar_alignment;
|
||||
|
||||
guint win_hash(gconstpointer key) { return (guint)*((Window*)key); }
|
||||
gboolean win_compare(gconstpointer a, gconstpointer b) { return (*((Window*)a) == *((Window*)b)); }
|
||||
@@ -63,6 +64,7 @@ void default_taskbar()
|
||||
hide_inactive_tasks = 0;
|
||||
hide_task_diff_monitor = 0;
|
||||
taskbar_sort_method = TASKBAR_NOSORT;
|
||||
taskbar_alignment = ALIGN_LEFT;
|
||||
default_taskbarname();
|
||||
}
|
||||
|
||||
@@ -97,7 +99,7 @@ void cleanup_taskbar()
|
||||
}
|
||||
free_area(&tskbar->area);
|
||||
// remove taskbar from the panel
|
||||
panel->area.list = g_slist_remove(panel->area.list, tskbar);
|
||||
panel->area.list = g_list_remove(panel->area.list, tskbar);
|
||||
}
|
||||
if (panel->taskbar) {
|
||||
free(panel->taskbar);
|
||||
@@ -153,6 +155,7 @@ void init_taskbar_panel(void *p)
|
||||
panel->g_taskbar.area.parent = panel;
|
||||
panel->g_taskbar.area.panel = panel;
|
||||
panel->g_taskbar.area.size_mode = SIZE_BY_LAYOUT;
|
||||
panel->g_taskbar.area.alignment = taskbar_alignment;
|
||||
panel->g_taskbar.area._resize = resize_taskbar;
|
||||
panel->g_taskbar.area._draw_foreground = draw_taskbar;
|
||||
panel->g_taskbar.area._on_change_layout = on_change_taskbar;
|
||||
@@ -334,7 +337,7 @@ int resize_taskbar(void *obj)
|
||||
resize_by_layout(obj, panel->g_task.maximum_width);
|
||||
|
||||
text_width = panel->g_task.maximum_width;
|
||||
GSList *l = taskbar->area.list;
|
||||
GList *l = taskbar->area.list;
|
||||
if (taskbarname_enabled) l = l->next;
|
||||
for (; l != NULL; l = l->next) {
|
||||
if (((Task *)l->data)->area.on_screen) {
|
||||
@@ -388,7 +391,7 @@ void set_taskbar_state(Taskbar *tskbar, int state)
|
||||
if (taskbarname_enabled && tskbar->bar_name.state_pix[state] == 0)
|
||||
tskbar->bar_name.area.redraw = 1;
|
||||
if (panel_mode == MULTI_DESKTOP && panel1[0].g_taskbar.background[TASKBAR_NORMAL] != panel1[0].g_taskbar.background[TASKBAR_ACTIVE]) {
|
||||
GSList *l = tskbar->area.list;
|
||||
GList *l = tskbar->area.list;
|
||||
if (taskbarname_enabled) l = l->next;
|
||||
for ( ; l ; l = l->next)
|
||||
set_task_redraw(l->data);
|
||||
@@ -511,7 +514,7 @@ int taskbar_needs_sort(Taskbar *taskbar)
|
||||
if (taskbar_sort_method == TASKBAR_NOSORT)
|
||||
return 0;
|
||||
|
||||
GSList *i, *j;
|
||||
GList *i, *j;
|
||||
for (i = taskbar->area.list, j = i ? i->next : NULL; i && j; i = i->next, j = j->next) {
|
||||
if (compare_tasks(i->data, j->data, taskbar) > 0) {
|
||||
return 1;
|
||||
@@ -528,7 +531,7 @@ void sort_tasks(Taskbar *taskbar)
|
||||
if (!taskbar_needs_sort(taskbar)) {
|
||||
return;
|
||||
}
|
||||
taskbar->area.list = g_slist_sort_with_data(taskbar->area.list, (GCompareDataFunc)compare_tasks, taskbar);
|
||||
taskbar->area.list = g_list_sort_with_data(taskbar->area.list, (GCompareDataFunc)compare_tasks, taskbar);
|
||||
taskbar->area.resize = 1;
|
||||
panel_refresh = 1;
|
||||
((Panel*)taskbar->area.panel)->area.resize = 1;
|
||||
|
||||
@@ -21,6 +21,7 @@ extern int hide_inactive_tasks;
|
||||
extern int hide_task_diff_monitor;
|
||||
enum { TASKBAR_NOSORT, TASKBAR_SORT_CENTER, TASKBAR_SORT_TITLE };
|
||||
extern int taskbar_sort_method;
|
||||
extern int taskbar_alignment;
|
||||
|
||||
typedef struct {
|
||||
// always start with area
|
||||
|
||||
@@ -76,7 +76,7 @@ void init_taskbarname_panel(void *p)
|
||||
tskbar->bar_name.name = g_strdup_printf("%d", j+1);
|
||||
|
||||
// append the name at the beginning of taskbar
|
||||
tskbar->area.list = g_slist_append(tskbar->area.list, &tskbar->bar_name);
|
||||
tskbar->area.list = g_list_append(tskbar->area.list, &tskbar->bar_name);
|
||||
}
|
||||
|
||||
for (l=list ; l ; l = l->next)
|
||||
@@ -103,7 +103,7 @@ void cleanup_taskbarname()
|
||||
XFreePixmap(server.dsp, tskbar->bar_name.state_pix[k]);
|
||||
tskbar->bar_name.state_pix[k] = 0;
|
||||
}
|
||||
tskbar->area.list = g_slist_remove(tskbar->area.list, &tskbar->bar_name);
|
||||
tskbar->area.list = g_list_remove(tskbar->area.list, &tskbar->bar_name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user