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;
|
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;
|
||||||
|
|||||||
+1
-1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user