i3bar: make modifier behave like floating_modifier
Pressed modifiers are determined like in click.c:handle_button_press. Fixes #3234.
This commit is contained in:
@ -479,25 +479,8 @@ CFGFUN(bar_verbose, const char *verbose) {
|
||||
current_bar->verbose = eval_boolstr(verbose);
|
||||
}
|
||||
|
||||
CFGFUN(bar_modifier, const char *modifier) {
|
||||
if (strcmp(modifier, "Mod1") == 0)
|
||||
current_bar->modifier = M_MOD1;
|
||||
else if (strcmp(modifier, "Mod2") == 0)
|
||||
current_bar->modifier = M_MOD2;
|
||||
else if (strcmp(modifier, "Mod3") == 0)
|
||||
current_bar->modifier = M_MOD3;
|
||||
else if (strcmp(modifier, "Mod4") == 0)
|
||||
current_bar->modifier = M_MOD4;
|
||||
else if (strcmp(modifier, "Mod5") == 0)
|
||||
current_bar->modifier = M_MOD5;
|
||||
else if (strcmp(modifier, "Control") == 0 ||
|
||||
strcmp(modifier, "Ctrl") == 0)
|
||||
current_bar->modifier = M_CONTROL;
|
||||
else if (strcmp(modifier, "Shift") == 0)
|
||||
current_bar->modifier = M_SHIFT;
|
||||
else if (strcmp(modifier, "none") == 0 ||
|
||||
strcmp(modifier, "off") == 0)
|
||||
current_bar->modifier = M_NONE;
|
||||
CFGFUN(bar_modifier, const char *modifiers) {
|
||||
current_bar->modifier = modifiers ? event_state_from_str(modifiers) : XCB_NONE;
|
||||
}
|
||||
|
||||
static void bar_configure_binding(const char *button, const char *release, const char *command) {
|
||||
@ -633,7 +616,7 @@ CFGFUN(bar_start) {
|
||||
TAILQ_INIT(&(current_bar->bar_bindings));
|
||||
TAILQ_INIT(&(current_bar->tray_outputs));
|
||||
current_bar->tray_padding = 2;
|
||||
current_bar->modifier = M_MOD4;
|
||||
current_bar->modifier = XCB_KEY_BUT_MASK_MOD_4;
|
||||
}
|
||||
|
||||
CFGFUN(bar_finish) {
|
||||
|
27
src/ipc.c
27
src/ipc.c
@ -656,32 +656,7 @@ static void dump_bar_config(yajl_gen gen, Barconfig *config) {
|
||||
}
|
||||
|
||||
ystr("modifier");
|
||||
switch (config->modifier) {
|
||||
case M_NONE:
|
||||
ystr("none");
|
||||
break;
|
||||
case M_CONTROL:
|
||||
ystr("ctrl");
|
||||
break;
|
||||
case M_SHIFT:
|
||||
ystr("shift");
|
||||
break;
|
||||
case M_MOD1:
|
||||
ystr("Mod1");
|
||||
break;
|
||||
case M_MOD2:
|
||||
ystr("Mod2");
|
||||
break;
|
||||
case M_MOD3:
|
||||
ystr("Mod3");
|
||||
break;
|
||||
case M_MOD5:
|
||||
ystr("Mod5");
|
||||
break;
|
||||
default:
|
||||
ystr("Mod4");
|
||||
break;
|
||||
}
|
||||
y(integer, config->modifier);
|
||||
|
||||
dump_bar_bindings(gen, config);
|
||||
|
||||
|
Reference in New Issue
Block a user