aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-06-11 21:41:02 -0400
committerLibravatar Simon Ser <contact@emersion.fr>2019-06-12 07:56:41 +0300
commit9670ccee683ab985e89eb04302fb998c4161f2d6 (patch)
treef7cafeaf55a7c139e97a920b0b43bcb080d3a27c /include/sway
parentFix segfaults caused by faulty command parsing (diff)
downloadsway-9670ccee683ab985e89eb04302fb998c4161f2d6.tar.gz
sway-9670ccee683ab985e89eb04302fb998c4161f2d6.tar.zst
sway-9670ccee683ab985e89eb04302fb998c4161f2d6.zip
bindings: defer while initiailizing
This adds the logic to defer binding execution while sway is still initializing. Without this, the binding command would be executed, but the command handler would return CMD_DEFER, which was being treated as a failure to run. To avoid partial executions, this will defer all bindings while config->active is false.
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/config.h5
-rw-r--r--include/sway/input/seat.h2
2 files changed, 7 insertions, 0 deletions
diff --git a/include/sway/config.h b/include/sway/config.h
index 57ae3c63..9736a665 100644
--- a/include/sway/config.h
+++ b/include/sway/config.h
@@ -559,6 +559,11 @@ bool read_config(FILE *file, struct sway_config *config,
559void run_deferred_commands(void); 559void run_deferred_commands(void);
560 560
561/** 561/**
562 * Run the binding commands that were deferred when initializing the inputs
563 */
564void run_deferred_bindings(void);
565
566/**
562 * Adds a warning entry to the swaynag instance used for errors. 567 * Adds a warning entry to the swaynag instance used for errors.
563 */ 568 */
564void config_add_swaynag_warning(char *fmt, ...); 569void config_add_swaynag_warning(char *fmt, ...);
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index eb6c09a1..c963de9b 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -78,6 +78,8 @@ struct sway_seat {
78 78
79 uint32_t last_button_serial; 79 uint32_t last_button_serial;
80 80
81 list_t *deferred_bindings; // struct sway_binding
82
81 struct wl_listener focus_destroy; 83 struct wl_listener focus_destroy;
82 struct wl_listener new_node; 84 struct wl_listener new_node;
83 struct wl_listener request_start_drag; 85 struct wl_listener request_start_drag;