diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-09-18 23:42:07 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-09 14:08:59 +0200 |
| commit | 677ac164a953a90acff60e7b84b0091184f56464 (patch) | |
| tree | e015357c23ab56326fae4217c25d294b6626b850 /main/src | |
| parent | 2f1f04b3e80beaf2c7f333a14cb7e14eeafe935e (diff) | |
| download | dino-677ac164a953a90acff60e7b84b0091184f56464.tar.gz | |
Make Ctrl-Q accelerator user-configurable
Some devices, such as those using virtual keyboards such as Squeekboard,
might find the Ctrl-Q accelerator annoying, as it can be easily
mistyped.
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/ui/application.vala | 17 | ||||
| -rw-r--r-- | main/src/ui/settings_dialog.vala | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala index 91d4dec4..a7aaf075 100644 --- a/main/src/ui/application.vala +++ b/main/src/ui/application.vala @@ -117,6 +117,8 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application { } private void create_actions() { + Dino.Entities.Settings settings = Dino.Application.get_default().settings; + SimpleAction accounts_action = new SimpleAction("accounts", null); accounts_action.activate.connect(show_accounts_window); add_action(accounts_action); @@ -132,7 +134,20 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application { SimpleAction quit_action = new SimpleAction("quit", null); quit_action.activate.connect(quit); add_action(quit_action); - set_accels_for_action("app.quit", KEY_COMBINATION_QUIT); + + if (settings.quit_ctrl_q) { + set_accels_for_action("app.quit", KEY_COMBINATION_QUIT); + } + + settings.quit_ctrl_q_update.connect((active) => + { + if (active) { + set_accels_for_action("app.quit", KEY_COMBINATION_QUIT); + } + else { + set_accels_for_action("app.quit", {null}); + } + }); SimpleAction open_conversation_action = new SimpleAction("open-conversation", VariantType.INT32); open_conversation_action.activate.connect((variant) => { diff --git a/main/src/ui/settings_dialog.vala b/main/src/ui/settings_dialog.vala index fc1eb678..14abc580 100644 --- a/main/src/ui/settings_dialog.vala +++ b/main/src/ui/settings_dialog.vala @@ -16,6 +16,7 @@ class SettingsDialog : Dialog { [GtkChild] private unowned RadioButton encryption_radio_openpgp; [GtkChild] private unowned CheckButton send_button_checkbutton; [GtkChild] private unowned CheckButton enter_newline_checkbutton; + [GtkChild] private unowned CheckButton quit_ctrl_q_checkbutton; Dino.Entities.Settings settings = Dino.Application.get_default().settings; @@ -33,6 +34,7 @@ class SettingsDialog : Dialog { send_button_checkbutton.active = settings.send_button; enter_newline_checkbutton.active = settings.enter_newline; enter_newline_checkbutton.sensitive = settings.send_button; + quit_ctrl_q_checkbutton.active = settings.quit_ctrl_q; typing_checkbutton.toggled.connect(() => { settings.send_typing = typing_checkbutton.active; } ); marker_checkbutton.toggled.connect(() => { settings.send_marker = marker_checkbutton.active; } ); @@ -67,6 +69,7 @@ class SettingsDialog : Dialog { enter_newline_checkbutton.active = visible; } }); + quit_ctrl_q_checkbutton.toggled.connect(() => { settings.quit_ctrl_q = quit_ctrl_q_checkbutton.active; }); } } |
