Layout: Add update_layout boolean argument in arrange() function

This commit is contained in:
Martin Duquesnoy 2009-07-05 03:13:07 +02:00
parent 0cc60f8d68
commit c7a0fc9c3f
8 changed files with 15 additions and 22 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);