Implemented config key 'new_container'

This commit is contained in:
Simon Kampe 2011-03-23 16:11:46 +01:00 committed by Michael Stapelberg
parent 21c7a69812
commit 650eebc347
4 changed files with 26 additions and 9 deletions

View File

@ -92,7 +92,7 @@ struct Config {
const char *ipc_socket_path; const char *ipc_socket_path;
const char *restart_state_path; const char *restart_state_path;
int container_mode; int default_layout;
int container_stack_limit; int container_stack_limit;
int container_stack_limit_value; int container_stack_limit_value;

View File

@ -106,9 +106,10 @@ workspace_bar { return TOKWORKSPACEBAR; }
popup_during_fullscreen { return TOK_POPUP_DURING_FULLSCREEN; } popup_during_fullscreen { return TOK_POPUP_DURING_FULLSCREEN; }
ignore { return TOK_IGNORE; } ignore { return TOK_IGNORE; }
leave_fullscreen { return TOK_LEAVE_FULLSCREEN; } leave_fullscreen { return TOK_LEAVE_FULLSCREEN; }
default { /* yylval.number = MODE_DEFAULT; */return TOKCONTAINERMODE; } default { /* yylval.number = MODE_DEFAULT; */return TOK_DEFAULT; }
stacking { /* yylval.number = MODE_STACK; */return TOKCONTAINERMODE; } stacking { /* yylval.number = MODE_STACK; */return TOK_STACKING; }
tabbed { /* yylval.number = MODE_TABBED; */return TOKCONTAINERMODE; } stacked { return TOK_STACKING; }
tabbed { /* yylval.number = MODE_TABBED; */return TOK_TABBED; }
stack-limit { return TOKSTACKLIMIT; } stack-limit { return TOKSTACKLIMIT; }
cols { /* yylval.number = STACK_LIMIT_COLS; */return TOKSTACKLIMIT; } cols { /* yylval.number = STACK_LIMIT_COLS; */return TOKSTACKLIMIT; }
rows { /* yylval.number = STACK_LIMIT_ROWS; */return TOKSTACKLIMIT; } rows { /* yylval.number = STACK_LIMIT_ROWS; */return TOKSTACKLIMIT; }

View File

@ -235,7 +235,9 @@ void parse_file(const char *f) {
%token TOK_1PIXEL "1pixel" %token TOK_1PIXEL "1pixel"
%token TOKFOCUSFOLLOWSMOUSE "focus_follows_mouse" %token TOKFOCUSFOLLOWSMOUSE "focus_follows_mouse"
%token TOKWORKSPACEBAR "workspace_bar" %token TOKWORKSPACEBAR "workspace_bar"
%token TOKCONTAINERMODE "default/stacking/tabbed" %token TOK_DEFAULT "default"
%token TOK_STACKING "stacking"
%token TOK_TABBED "tabbed"
%token TOKSTACKLIMIT "stack-limit" %token TOKSTACKLIMIT "stack-limit"
%token TOK_POPUP_DURING_FULLSCREEN "popup_during_fullscreen" %token TOK_POPUP_DURING_FULLSCREEN "popup_during_fullscreen"
%token TOK_IGNORE "ignore" %token TOK_IGNORE "ignore"
@ -393,10 +395,10 @@ direction:
; ;
new_container: new_container:
TOKNEWCONTAINER WHITESPACE TOKCONTAINERMODE TOKNEWCONTAINER WHITESPACE layout_mode
{ {
DLOG("new containers will be in mode %d\n", $<number>3); DLOG("new containers will be in mode %d\n", $<number>3);
config.container_mode = $<number>3; config.default_layout = $<number>3;
#if 0 #if 0
/* We also need to change the layout of the already existing /* We also need to change the layout of the already existing
@ -437,6 +439,12 @@ new_container:
} }
; ;
layout_mode:
TOK_DEFAULT { $<number>$ = L_DEFAULT; }
| TOK_STACKING { $<number>$ = L_STACKED; }
| TOK_TABBED { $<number>$ = L_TABBED; }
;
new_window: new_window:
TOKNEWWINDOW WHITESPACE border_style TOKNEWWINDOW WHITESPACE border_style
{ {

View File

@ -59,8 +59,16 @@ Con *con_new(Con *parent) {
TAILQ_INIT(&(new->focus_head)); TAILQ_INIT(&(new->focus_head));
TAILQ_INIT(&(new->swallow_head)); TAILQ_INIT(&(new->swallow_head));
if (parent != NULL) if (parent != NULL) {
con_attach(new, parent, false); /* Set layout of ws if this is the first child of the ws. */
if (parent->type == CT_WORKSPACE && con_is_leaf(parent)) {
con_set_layout(new, config.default_layout);
con_attach(new, parent, false);
con_set_layout(parent, config.default_layout);
} else {
con_attach(new, parent, false);
}
}
return new; return new;
} }