Compare commits

..

1 Commits

Author SHA1 Message Date
o9000
e4e1ceec38 Started work on spacer item 2015-05-05 23:32:18 +02:00
5 changed files with 16 additions and 5 deletions

View File

@@ -505,6 +505,16 @@ void set_panel_items_order(Panel *p)
} }
if (panel_items_order[k] == 'C') if (panel_items_order[k] == 'C')
p->area.list = g_slist_append(p->area.list, &p->clock); p->area.list = g_slist_append(p->area.list, &p->clock);
if (panel_items_order[k] == 'F') {
Area *spacer = calloc(sizeof(Area), 1);
spacer->panel = p;
spacer->parent = p;
spacer->bg = &g_array_index(backgrounds, Background, 0);
spacer->on_screen = 1;
spacer->size_mode = SIZE_BY_LAYOUT;
spacer->gc = 1;
p->area.list = g_slist_append(p->area.list, spacer);
}
} }
init_rendering(&p->area, 0); init_rendering(&p->area, 0);
} }

View File

@@ -50,9 +50,6 @@ Task *add_task (Window win)
if (!win) return 0; if (!win) return 0;
if (window_is_hidden(win)) return 0; if (window_is_hidden(win)) return 0;
XSelectInput(server.dsp, win, PropertyChangeMask|StructureNotifyMask);
XFlush(server.dsp);
int monitor; int monitor;
if (nb_panel > 1) { if (nb_panel > 1) {
monitor = window_get_monitor (win); monitor = window_get_monitor (win);
@@ -78,7 +75,8 @@ Task *add_task (Window win)
get_title(&new_tsk); get_title(&new_tsk);
get_icon(&new_tsk); get_icon(&new_tsk);
//printf("new task %s win %u: desktop %d, monitor %d\n", new_tsk.title, win, new_tsk.desktop, monitor); //printf("task %s : desktop %d, monitor %d\n", new_tsk->title, desktop, monitor);
XSelectInput (server.dsp, new_tsk.win, PropertyChangeMask|StructureNotifyMask);
GPtrArray* task_group = g_ptr_array_new(); GPtrArray* task_group = g_ptr_array_new();
Taskbar *tskbar; Taskbar *tskbar;

View File

@@ -727,7 +727,6 @@ void event_property_notify (XEvent *e)
} }
else { else {
tsk = task_get_task (win); tsk = task_get_task (win);
//printf("change win = %u, task = %p\n", win, tsk);
if (!tsk) { if (!tsk) {
if (at != server.atom._NET_WM_STATE) if (at != server.atom._NET_WM_STATE)
return; return;

View File

@@ -277,6 +277,7 @@ int resize_by_layout(void *obj, int maximum_size)
} }
else { else {
// detect free size for SIZE_BY_LAYOUT's Area // detect free size for SIZE_BY_LAYOUT's Area
// TODO the spacer should collapse when the other areas are overflowing
size = a->height - (2 * (a->paddingxlr + a->bg->border.width)); size = a->height - (2 * (a->paddingxlr + a->bg->border.width));
GSList *l; GSList *l;
for (l = a->list ; l ; l = l->next) { for (l = a->list ; l ; l = l->next) {
@@ -471,6 +472,8 @@ void free_area (Area *a)
XFreePixmap (server.dsp, a->pix); XFreePixmap (server.dsp, a->pix);
a->pix = 0; a->pix = 0;
} }
if (a->gc)
free(a);
} }

View File

@@ -72,6 +72,7 @@ typedef struct {
int resize; int resize;
// need redraw Pixmap // need redraw Pixmap
int redraw; int redraw;
int gc;
// paddingxlr = horizontal padding left/right // paddingxlr = horizontal padding left/right
// paddingx = horizontal padding between childs // paddingx = horizontal padding between childs
int paddingxlr, paddingx, paddingy; int paddingxlr, paddingx, paddingy;