diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-16 08:17:24 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-16 08:17:24 +1000 |
commit | 05284b65db5f3cdfa88d7e06055aadd0d5fa8e50 (patch) | |
tree | 7238c53d8310712a94b6d798ef096bd3ad48f43e /sway/commands/move.c | |
parent | Introduce seat_set_raw_focus and remove notify argument from seat_set_focus_warp (diff) | |
download | sway-05284b65db5f3cdfa88d7e06055aadd0d5fa8e50.tar.gz sway-05284b65db5f3cdfa88d7e06055aadd0d5fa8e50.tar.zst sway-05284b65db5f3cdfa88d7e06055aadd0d5fa8e50.zip |
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.
Diffstat (limited to 'sway/commands/move.c')
-rw-r--r-- | sway/commands/move.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sway/commands/move.c b/sway/commands/move.c index 215ffe27..24036f36 100644 --- a/sway/commands/move.c +++ b/sway/commands/move.c | |||
@@ -704,7 +704,7 @@ static struct cmd_results *cmd_move_in_direction( | |||
704 | } | 704 | } |
705 | 705 | ||
706 | // Hack to re-focus container | 706 | // Hack to re-focus container |
707 | seat_set_focus_workspace(config->handler_context.seat, new_ws); | 707 | seat_set_raw_focus(config->handler_context.seat, &new_ws->node); |
708 | seat_set_focus_container(config->handler_context.seat, container); | 708 | seat_set_focus_container(config->handler_context.seat, container); |
709 | 709 | ||
710 | if (old_ws != new_ws) { | 710 | if (old_ws != new_ws) { |