parser: implement 'layout'
This commit is contained in:
parent
b467242d69
commit
cea8f91e18
|
@ -88,6 +88,7 @@ global { return TOK_GLOBAL; }
|
|||
layout { return TOK_LAYOUT; }
|
||||
default { return TOK_DEFAULT; }
|
||||
stacked { return TOK_STACKED; }
|
||||
stacking { return TOK_STACKED; }
|
||||
tabbed { return TOK_TABBED; }
|
||||
border { return TOK_BORDER; }
|
||||
none { return TOK_NONE; }
|
||||
|
|
|
@ -252,8 +252,8 @@ operation:
|
|||
| restart
|
||||
/*| reload
|
||||
| mark
|
||||
| layout
|
||||
| border */
|
||||
| layout
|
||||
| restore
|
||||
| move
|
||||
| workspace
|
||||
|
@ -466,3 +466,28 @@ restore:
|
|||
tree_append_json($<string>3);
|
||||
}
|
||||
;
|
||||
|
||||
layout:
|
||||
TOK_LAYOUT WHITESPACE layout_mode
|
||||
{
|
||||
printf("changing layout to %d\n", $<number>3);
|
||||
owindow *current;
|
||||
|
||||
/* check if the match is empty, not if the result is empty */
|
||||
if (match_is_empty(¤t_match))
|
||||
focused->layout = $<number>3;
|
||||
else {
|
||||
TAILQ_FOREACH(current, &owindows, owindows) {
|
||||
printf("matching: %p / %s\n", current->con, current->con->name);
|
||||
current->con->layout = $<number>3;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
;
|
||||
|
||||
layout_mode:
|
||||
TOK_DEFAULT { $<number>$ = L_DEFAULT; }
|
||||
| TOK_STACKED { $<number>$ = L_STACKED; }
|
||||
| TOK_TABBED { $<number>$ = L_TABBED; }
|
||||
;
|
||||
|
|
|
@ -124,7 +124,8 @@ void render_con(Con *con) {
|
|||
/* in a stacking container, we ensure the focused client is raised */
|
||||
if (con->layout == L_STACKED) {
|
||||
Con *foc = TAILQ_FIRST(&(con->focus_head));
|
||||
x_raise_con(foc);
|
||||
if (foc != TAILQ_END(&(con->focus_head)))
|
||||
x_raise_con(foc);
|
||||
}
|
||||
|
||||
TAILQ_FOREACH(child, &(con->floating_head), floating_windows) {
|
||||
|
|
Loading…
Reference in New Issue