desktop-shell: Allow binding-modifier weston.ini option to be none
Allow the binding-modifier option in weston.ini to take a value of
"none", meaning that none of the usual Super+Tab, Super+K, Super+Fn,
etc. key bindings will be enabled.
Signed-off-by: Bob Ham <bob.ham@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 474d118..6f1c167 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -610,6 +610,8 @@
return MODIFIER_ALT;
else if (!strcmp("super", modifier))
return MODIFIER_SUPER;
+ else if (!strcmp("none", modifier))
+ return 0;
else
return MODIFIER_SUPER;
}
@@ -660,10 +662,7 @@
weston_config_section_get_string(section,
"exposay-modifier", &s, "none");
- if (strcmp(s, "none") == 0)
- shell->exposay_modifier = 0;
- else
- shell->exposay_modifier = get_modifier(s);
+ shell->exposay_modifier = get_modifier(s);
free(s);
weston_config_section_get_string(section, "animation", &s, "none");
@@ -6452,9 +6451,20 @@
weston_compositor_add_axis_binding(ec, WL_POINTER_AXIS_VERTICAL_SCROLL,
MODIFIER_SUPER, zoom_axis_binding,
NULL);
+ weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSDOWN, 0,
+ backlight_binding, ec);
+ weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSUP, 0,
+ backlight_binding, ec);
/* configurable bindings */
+ if (shell->exposay_modifier)
+ weston_compositor_add_modifier_binding(ec, shell->exposay_modifier,
+ exposay_binding, shell);
+
mod = shell->binding_modifier;
+ if (!mod)
+ return;
+
weston_compositor_add_key_binding(ec, KEY_PAGEUP, mod,
zoom_key_binding, NULL);
weston_compositor_add_key_binding(ec, KEY_PAGEDOWN, mod,
@@ -6480,12 +6490,8 @@
shell);
weston_compositor_add_key_binding(ec, KEY_F9, mod, backlight_binding,
ec);
- weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSDOWN, 0,
- backlight_binding, ec);
weston_compositor_add_key_binding(ec, KEY_F10, mod, backlight_binding,
ec);
- weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSUP, 0,
- backlight_binding, ec);
weston_compositor_add_key_binding(ec, KEY_K, mod,
force_kill_binding, shell);
weston_compositor_add_key_binding(ec, KEY_UP, mod,
@@ -6499,10 +6505,6 @@
workspace_move_surface_down_binding,
shell);
- if (shell->exposay_modifier)
- weston_compositor_add_modifier_binding(ec, shell->exposay_modifier,
- exposay_binding, shell);
-
/* Add bindings for mod+F[1-6] for workspace 1 to 6. */
if (shell->workspaces.num > 1) {
num_workspace_bindings = shell->workspaces.num;