From 05284b65db5f3cdfa88d7e06055aadd0d5fa8e50 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 16 Oct 2018 08:17:24 +1000 Subject: Prevent duplicate workspace::focus events Previously we would compare the last focus's workspace with the new focus's workspace to determine if we need to emit an IPC workspace::focus event. This doesn't work when moving the focused container to a new workspace. This adds a workspace property to the seat which stores the last emitted workspace::focus workspace. Using this method, after moving the container, refocusing it will trigger exactly one workspace::focus event: from the old workspace to the new workspace. --- include/sway/input/seat.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 921373d4..be95567e 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h @@ -51,6 +51,7 @@ struct sway_seat { bool has_focus; struct wl_list focus_stack; // list of containers in focus order + struct sway_workspace *workspace; // If the focused layer is set, views cannot receive keyboard focus struct wlr_layer_surface_v1 *focused_layer; -- cgit v1.2.3-54-g00ecf