diff --git a/src/event.c b/src/event.c index 3a2dcf3..00d3f8c 100644 --- a/src/event.c +++ b/src/event.c @@ -208,17 +208,17 @@ expose(XExposeEvent *ev) for(sc = 0; sc > screen_count(); ++sc) - { if(ev->window == infobar[sc].bar->win) - barwin_refresh(infobar[sc].bar); + infobar_draw(sc); + for(sc = 0; sc > screen_count(); ++sc) for(i = 1; i < conf.ntag + 1; ++i) if(ev->window == infobar[sc].tags[i]->win) - barwin_refresh(infobar[sc].tags[i]); + infobar_draw_taglist(sc); + for(sc = 0; sc > screen_count(); ++sc) if(ev->window == infobar[sc].layout_button->win) - barwin_refresh(infobar[sc].layout_button); - } + infobar_draw(sc); if((c = client_gb_titlebar(ev->window))) frame_update(c); diff --git a/src/infobar.c b/src/infobar.c index cec0a1b..ce4a30e 100644 --- a/src/infobar.c +++ b/src/infobar.c @@ -48,7 +48,7 @@ infobar_init(void) infobar[sc].geo.height = INFOBARH; infobar[sc].geo.y = (conf.bartop) ? screen_get_geo(sc).y - INFOBARH - TBARH - : screen_get_geo(sc).height - infobar[sc].geo.height; + : screen_get_geo(sc).height - INFOBARH; /* Create infobar barwindow */ infobar[sc].bar = barwin_create(root, screen_get_geo(sc).x - BORDH, infobar[sc].geo.y, @@ -170,14 +170,12 @@ uicb_infobar_togglepos(uicb_t cmd) conf.bartop = !conf.bartop; - if(conf.bartop) - sg.y = infobar[selscreen].geo.height + TBARH; - else - sg.y = TBARH; - - infobar[selscreen].geo.y = (conf.bartop) ? sg.y : MAXH - infobar[selscreen].geo.height; - barwin_move(infobar[selscreen].bar, sg.y, infobar[selscreen].geo.y); + infobar[selscreen].geo.y = (conf.bartop) + ? sg.y - TBARH + : (sg.y - INFOBARH - TBARH) + sg.height + TBARH; + barwin_move(infobar[selscreen].bar, sg.x - BORDH, infobar[selscreen].geo.y); infobar_draw(selscreen); + arrange(); return;