Layout: Add update_layout boolean argument in arrange() function
This commit is contained in:
parent
0cc60f8d68
commit
c7a0fc9c3f
@ -493,7 +493,7 @@ client_manage(Window w, XWindowAttributes *wa, Bool ar)
|
||||
client_update_attributes(c);
|
||||
|
||||
if(ar)
|
||||
arrange(c->screen);
|
||||
arrange(c->screen, True);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
@ -462,7 +462,7 @@ propertynotify(XPropertyEvent *ev)
|
||||
case XA_WM_TRANSIENT_FOR:
|
||||
XGetTransientForHint(dpy, c->win, &trans);
|
||||
if((c->tile || c->max) && (c->hint = (client_gb_win(trans) != NULL)))
|
||||
arrange(c->screen);
|
||||
arrange(c->screen, True);
|
||||
break;
|
||||
case XA_WM_NORMAL_HINTS:
|
||||
client_size_hints(c);
|
||||
|
||||
@ -289,7 +289,7 @@ infobar_set_position(int pos)
|
||||
barwin_move(infobar[selscreen].bar, sgeo[selscreen].x - BORDH, infobar[selscreen].geo.y);
|
||||
infobar_draw(selscreen);
|
||||
ewmh_set_workarea();
|
||||
arrange(selscreen);
|
||||
arrange(selscreen, True);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
/** Arrange All
|
||||
*/
|
||||
void
|
||||
arrange(int screen)
|
||||
arrange(int screen, Bool update_layout)
|
||||
{
|
||||
Client *c;
|
||||
|
||||
@ -51,7 +51,9 @@ arrange(int screen)
|
||||
client_hide(c);
|
||||
}
|
||||
|
||||
tags[screen][seltag[screen]].layout.func(screen);
|
||||
if(update_layout)
|
||||
tags[screen][seltag[screen]].layout.func(screen);
|
||||
|
||||
infobar_draw(screen);
|
||||
|
||||
return;
|
||||
@ -752,7 +754,7 @@ uicb_set_layout(uicb_t cmd)
|
||||
if(layout_list[i].func == conf.layout[j].func)
|
||||
tags[selscreen][seltag[selscreen]].layout = conf.layout[j];
|
||||
|
||||
arrange(selscreen);
|
||||
arrange(selscreen, True);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -118,9 +118,9 @@ mouse_move(Client *c)
|
||||
c->screen = selscreen;
|
||||
c->tag = i;
|
||||
tags[c->screen][c->tag].request_update = True;
|
||||
arrange(oscreen);
|
||||
arrange(oscreen, True);
|
||||
if(oscreen != c->screen)
|
||||
arrange(c->screen);
|
||||
arrange(c->screen, True);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
15
src/tag.c
15
src/tag.c
@ -65,20 +65,11 @@ tag_set(int tag)
|
||||
|
||||
ewmh_update_current_tag_prop();
|
||||
|
||||
/* Arrange infobar position */
|
||||
if(tags[selscreen][otag].barpos != tags[selscreen][seltag[selscreen]].barpos)
|
||||
infobar_set_position(tags[selscreen][seltag[selscreen]].barpos);
|
||||
|
||||
/* arrange(selscreen); */
|
||||
for(c = clients; c; c = c->next)
|
||||
if(c->screen == selscreen)
|
||||
{
|
||||
if(!ishide(c, selscreen))
|
||||
client_unhide(c);
|
||||
else
|
||||
client_hide(c);
|
||||
}
|
||||
|
||||
infobar_draw(selscreen);
|
||||
arrange(selscreen, False);
|
||||
|
||||
if(tags[selscreen][tag].request_update)
|
||||
{
|
||||
@ -113,7 +104,7 @@ tag_transfert(Client *c, int tag)
|
||||
|
||||
c->tag = tag;
|
||||
|
||||
arrange(c->screen);
|
||||
arrange(c->screen, True);
|
||||
|
||||
if(c == sel)
|
||||
client_focus(NULL);
|
||||
|
||||
@ -228,7 +228,7 @@ scan(void)
|
||||
tags[c->screen][c->tag].request_update = True;
|
||||
|
||||
for(i = 0; i < screen_count(); ++i)
|
||||
arrange(i);
|
||||
arrange(i, True);
|
||||
|
||||
XFree(w);
|
||||
|
||||
|
||||
@ -268,7 +268,7 @@ void uicb_screen_next(uicb_t);
|
||||
void uicb_screen_prev(uicb_t);
|
||||
|
||||
/* layout.c */
|
||||
void arrange(int screen);
|
||||
void arrange(int screen, Bool update_layout);
|
||||
void freelayout(int screen);
|
||||
void layoutswitch(Bool b);
|
||||
void maxlayout(int screen);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user