[PATCH 3/3] desktop-shell: Allow binding-modifier weston.ini option to be none

Derek Foreman derekf at osg.samsung.com
Mon Jan 11 10:26:07 PST 2016


On 11/01/16 09:41 AM, Bob Ham wrote:
> 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 at collabora.com>

Reviewed-by: Derek Foreman <derekf at osg.samsung.com>

> ---
>  desktop-shell/shell.c | 26 ++++++++++++++------------
>  man/weston.ini.man    |  2 +-
>  2 files changed, 15 insertions(+), 13 deletions(-)
> 
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index c94d0b1..87f2a1e 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 09f2ae8..29849ee 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
> 



More information about the wayland-devel mailing list