summaryrefslogtreecommitdiff
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
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>
-rw-r--r--desktop-shell/shell.c26
-rw-r--r--man/weston.ini.man2
2 files changed, 15 insertions, 13 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;
diff --git a/man/weston.ini.man b/man/weston.ini.man
index 6ebe68a3..6e92066e 100644
--- a/man/weston.ini.man
+++ b/man/weston.ini.man
@@ -266,7 +266,7 @@ pressed
sets the modifier key used for common bindings (string), such as moving
surfaces, resizing, rotating, switching, closing and setting the transparency
for windows, controlling the backlight and zooming the desktop. Possible values:
-ctrl, alt, super (default)
+none, ctrl, alt, super (default)
.TP 7
.BI "num-workspaces=" 6
defines the number of workspaces (unsigned integer). The user can switch