Implemented config key 'new_container'
This commit is contained in:
parent
21c7a69812
commit
650eebc347
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
10
src/con.c
10
src/con.c
|
@ -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) {
|
||||||
|
/* 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_attach(new, parent, false);
|
||||||
|
con_set_layout(parent, config.default_layout);
|
||||||
|
} else {
|
||||||
|
con_attach(new, parent, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return new;
|
return new;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue