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>
This commit is contained in:
+14
-12
@@ -610,6 +610,8 @@ get_modifier(char *modifier)
|
||||
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 @@ shell_configuration(struct desktop_shell *shell)
|
||||
|
||||
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 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell)
|
||||
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_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell)
|
||||
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 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell)
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user