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>
dev
Bob Ham 9 years ago committed by Derek Foreman
parent 744e65317d
commit 553d12488c
  1. 26
      desktop-shell/shell.c
  2. 2
      man/weston.ini.man

@ -610,6 +610,8 @@ get_modifier(char *modifier)
return MODIFIER_ALT; return MODIFIER_ALT;
else if (!strcmp("super", modifier)) else if (!strcmp("super", modifier))
return MODIFIER_SUPER; return MODIFIER_SUPER;
else if (!strcmp("none", modifier))
return 0;
else else
return MODIFIER_SUPER; return MODIFIER_SUPER;
} }
@ -660,10 +662,7 @@ shell_configuration(struct desktop_shell *shell)
weston_config_section_get_string(section, weston_config_section_get_string(section,
"exposay-modifier", &s, "none"); "exposay-modifier", &s, "none");
if (strcmp(s, "none") == 0) shell->exposay_modifier = get_modifier(s);
shell->exposay_modifier = 0;
else
shell->exposay_modifier = get_modifier(s);
free(s); free(s);
weston_config_section_get_string(section, "animation", &s, "none"); 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, weston_compositor_add_axis_binding(ec, WL_POINTER_AXIS_VERTICAL_SCROLL,
MODIFIER_SUPER, zoom_axis_binding, MODIFIER_SUPER, zoom_axis_binding,
NULL); 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 */ /* configurable bindings */
if (shell->exposay_modifier)
weston_compositor_add_modifier_binding(ec, shell->exposay_modifier,
exposay_binding, shell);
mod = shell->binding_modifier; mod = shell->binding_modifier;
if (!mod)
return;
weston_compositor_add_key_binding(ec, KEY_PAGEUP, mod, weston_compositor_add_key_binding(ec, KEY_PAGEUP, mod,
zoom_key_binding, NULL); zoom_key_binding, NULL);
weston_compositor_add_key_binding(ec, KEY_PAGEDOWN, mod, 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); shell);
weston_compositor_add_key_binding(ec, KEY_F9, mod, backlight_binding, weston_compositor_add_key_binding(ec, KEY_F9, mod, backlight_binding,
ec); ec);
weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSDOWN, 0,
backlight_binding, ec);
weston_compositor_add_key_binding(ec, KEY_F10, mod, backlight_binding, weston_compositor_add_key_binding(ec, KEY_F10, mod, backlight_binding,
ec); ec);
weston_compositor_add_key_binding(ec, KEY_BRIGHTNESSUP, 0,
backlight_binding, ec);
weston_compositor_add_key_binding(ec, KEY_K, mod, weston_compositor_add_key_binding(ec, KEY_K, mod,
force_kill_binding, shell); force_kill_binding, shell);
weston_compositor_add_key_binding(ec, KEY_UP, mod, 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, workspace_move_surface_down_binding,
shell); 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. */ /* Add bindings for mod+F[1-6] for workspace 1 to 6. */
if (shell->workspaces.num > 1) { if (shell->workspaces.num > 1) {
num_workspace_bindings = shell->workspaces.num; num_workspace_bindings = shell->workspaces.num;

@ -266,7 +266,7 @@ pressed
sets the modifier key used for common bindings (string), such as moving sets the modifier key used for common bindings (string), such as moving
surfaces, resizing, rotating, switching, closing and setting the transparency surfaces, resizing, rotating, switching, closing and setting the transparency
for windows, controlling the backlight and zooming the desktop. Possible values: for windows, controlling the backlight and zooming the desktop. Possible values:
ctrl, alt, super (default) none, ctrl, alt, super (default)
.TP 7 .TP 7
.BI "num-workspaces=" 6 .BI "num-workspaces=" 6
defines the number of workspaces (unsigned integer). The user can switch defines the number of workspaces (unsigned integer). The user can switch

Loading…
Cancel
Save