From 744e65317d13bf97d66e834399df3d609ee1fbda Mon Sep 17 00:00:00 2001 From: Bob Ham Date: Tue, 12 Jan 2016 10:21:48 +0000 Subject: [PATCH] desktop-shell: Make zapping configurable Add a new boolean weston.ini option, "allow-zap" to enable or disable the Ctrl-Alt-Backspace key combination. Signed-off-by: Bob Ham Reviewed-by: Derek Foreman --- desktop-shell/shell.c | 14 +++++++++++--- desktop-shell/shell.h | 1 + man/weston.ini.man | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 85664c63..474d118f 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -636,6 +636,7 @@ shell_configuration(struct desktop_shell *shell) struct weston_config_section *section; char *s, *client; int ret; + int allow_zap; section = weston_config_get_section(shell->compositor->config, "shell", NULL, NULL); @@ -647,6 +648,11 @@ shell_configuration(struct desktop_shell *shell) "client", &s, client); free(client); shell->client = s; + + weston_config_section_get_bool(section, + "allow-zap", &allow_zap, true); + shell->allow_zap = allow_zap; + weston_config_section_get_string(section, "binding-modifier", &s, "super"); shell->binding_modifier = get_modifier(s); @@ -6425,10 +6431,12 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell) uint32_t mod; int i, num_workspace_bindings; + if (shell->allow_zap) + weston_compositor_add_key_binding(ec, KEY_BACKSPACE, + MODIFIER_CTRL | MODIFIER_ALT, + terminate_binding, ec); + /* fixed bindings */ - weston_compositor_add_key_binding(ec, KEY_BACKSPACE, - MODIFIER_CTRL | MODIFIER_ALT, - terminate_binding, ec); weston_compositor_add_button_binding(ec, BTN_LEFT, 0, click_to_activate_binding, shell); diff --git a/desktop-shell/shell.h b/desktop-shell/shell.h index c55a2255..b430fa23 100644 --- a/desktop-shell/shell.h +++ b/desktop-shell/shell.h @@ -189,6 +189,7 @@ struct desktop_shell { struct exposay exposay; + bool allow_zap; uint32_t binding_modifier; uint32_t exposay_modifier; enum animation_type win_animation_type; diff --git a/man/weston.ini.man b/man/weston.ini.man index 4f97c4d0..6ebe68a3 100644 --- a/man/weston.ini.man +++ b/man/weston.ini.man @@ -258,6 +258,10 @@ sets the effect used with the focused and unfocused windows. Can be .B none. By default, no animation is used. .TP 7 +.BI "allow-zap=" true +whether the shell should quit when the Ctrl-Alt-Backspace key combination is +pressed +.TP 7 .BI "binding-modifier=" ctrl sets the modifier key used for common bindings (string), such as moving surfaces, resizing, rotating, switching, closing and setting the transparency