summaryrefslogtreecommitdiff
path: root/desktop-shell
diff options
context:
space:
mode:
authorBob Ham <bob.ham@collabora.com>2016-01-12 10:21:49 +0000
committerDerek Foreman <derekf@osg.samsung.com>2016-01-12 09:25:28 -0600
commit553d12488c8141c468dffadc557607d7a072ffec (patch)
treea93b4c0cd889b8ecfd3624f8974b89ecb7470b4a /desktop-shell
parent744e65317d13bf97d66e834399df3d609ee1fbda (diff)
downloadweston-553d12488c8141c468dffadc557607d7a072ffec.tar.gz
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>
Diffstat (limited to 'desktop-shell')
-rw-r--r--desktop-shell/shell.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 474d118f..6f1c1672 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -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;