desktop-shell: Make zapping configurable
authorBob Ham <bob.ham@collabora.com>
Tue, 12 Jan 2016 10:21:48 +0000 (10:21 +0000)
committerDerek Foreman <derekf@osg.samsung.com>
Tue, 12 Jan 2016 15:24:05 +0000 (09:24 -0600)
Add a new boolean weston.ini option, "allow-zap" to enable or disable
the Ctrl-Alt-Backspace key combination.

Signed-off-by: Bob Ham <bob.ham@collabora.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
desktop-shell/shell.c
desktop-shell/shell.h
man/weston.ini.man

index 85664c6..474d118 100644 (file)
@@ -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);
index c55a225..b430fa2 100644 (file)
@@ -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;
index 4f97c4d..6ebe68a 100644 (file)
@@ -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