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; }
| restart
/*| reload
| mark
- | layout
| border */
+ | layout
| restore
| move
| workspace
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; }
+ ;
/* 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) {