summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Rouven Czerwinski <rouven@czerwinskis.de>2019-01-07 13:23:28 +0100
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-01-07 10:30:19 -0500
commitcc858e605a465a40abfce0fb53a70e59a79c248d (patch)
tree06981c577fd5a92e07835cedc318b3d5c7c92f42
parentview: use seat_consider_warp_to_focus in view_unmap (diff)
downloadsway-cc858e605a465a40abfce0fb53a70e59a79c248d.tar.gz
sway-cc858e605a465a40abfce0fb53a70e59a79c248d.tar.zst
sway-cc858e605a465a40abfce0fb53a70e59a79c248d.zip
seat: unhide the cursor if it is warped to focus
Unhide the cursor if container warping is enabled. Also set the image_surface to NULL during view_unmap, otherwise the cursor will try to access the surface which is currently being unmapped.
-rw-r--r--sway/input/seat.c4
-rw-r--r--sway/tree/view.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 9422713d..52790039 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -1231,4 +1231,8 @@ void seat_consider_warp_to_focus(struct sway_seat *seat) {
1231 } else { 1231 } else {
1232 cursor_warp_to_workspace(seat->cursor, focus->sway_workspace); 1232 cursor_warp_to_workspace(seat->cursor, focus->sway_workspace);
1233 } 1233 }
1234 if (seat->cursor->hidden){
1235 cursor_unhide(seat->cursor);
1236 wl_event_source_timer_update(seat->cursor->hide_source, cursor_get_timeout(seat->cursor));
1237 }
1234} 1238}
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 28728420..5371ee20 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -654,6 +654,7 @@ void view_unmap(struct sway_view *view) {
654 654
655 struct sway_seat *seat; 655 struct sway_seat *seat;
656 wl_list_for_each(seat, &server.input->seats, link) { 656 wl_list_for_each(seat, &server.input->seats, link) {
657 seat->cursor->image_surface = NULL;
657 seat_consider_warp_to_focus(seat); 658 seat_consider_warp_to_focus(seat);
658 } 659 }
659 660