From 33ed279494e7f95d74d494523afe8949091da8cd Mon Sep 17 00:00:00 2001
From: emersion <contact@emersion.fr>
Date: Sat, 21 Apr 2018 12:46:48 +0100
Subject: Update cursor when workspace focus changes

---
 sway/input/cursor.c | 5 ++---
 sway/input/seat.c   | 6 ++++++
 2 files changed, 8 insertions(+), 3 deletions(-)

(limited to 'sway')

diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index a19f0752..5ed4f1f7 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -59,9 +59,8 @@ static struct sway_container *container_at_cursor(struct sway_cursor *cursor,
 	// find the output the cursor is on
 	struct wlr_output_layout *output_layout =
 		root_container.sway_root->output_layout;
-	struct wlr_output *wlr_output =
-		wlr_output_layout_output_at(output_layout,
-				cursor->cursor->x, cursor->cursor->y);
+	struct wlr_output *wlr_output = wlr_output_layout_output_at(output_layout,
+		cursor->cursor->x, cursor->cursor->y);
 	if (wlr_output == NULL) {
 		return NULL;
 	}
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 8bba7d8f..631a273f 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -564,6 +564,12 @@ void seat_set_focus_warp(struct sway_seat *seat,
 		view_set_activated(view, false);
 	}
 
+	if (last_workspace && last_workspace != new_workspace) {
+		struct timespec now;
+		clock_gettime(CLOCK_MONOTONIC, &now);
+		cursor_send_pointer_motion(seat->cursor, now.tv_nsec / 1000);
+	}
+
 	seat->has_focus = (container != NULL);
 
 	update_debug_tree();
-- 
cgit v1.2.3