diff options
author | Bob Ham <bob.ham@collabora.com> | 2016-01-12 10:21:49 +0000 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2016-01-12 09:25:28 -0600 |
commit | 553d12488c8141c468dffadc557607d7a072ffec (patch) | |
tree | a93b4c0cd889b8ecfd3624f8974b89ecb7470b4a /desktop-shell | |
parent | 744e65317d13bf97d66e834399df3d609ee1fbda (diff) | |
download | weston-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.c | 26 |
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; |