diff options
Diffstat (limited to 'sway/desktop/xwayland.c')
-rw-r--r-- | sway/desktop/xwayland.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index d1aec084..95275937 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include "log.h" | 8 | #include "log.h" |
9 | #include "sway/desktop.h" | 9 | #include "sway/desktop.h" |
10 | #include "sway/desktop/transaction.h" | 10 | #include "sway/desktop/transaction.h" |
11 | #include "sway/input/cursor.h" | ||
11 | #include "sway/input/input-manager.h" | 12 | #include "sway/input/input-manager.h" |
12 | #include "sway/input/seat.h" | 13 | #include "sway/input/seat.h" |
13 | #include "sway/output.h" | 14 | #include "sway/output.h" |
@@ -390,6 +391,11 @@ static void handle_unmap(struct wl_listener *listener, void *data) { | |||
390 | wl_list_remove(&xwayland_view->commit.link); | 391 | wl_list_remove(&xwayland_view->commit.link); |
391 | } | 392 | } |
392 | 393 | ||
394 | static void do_rebase(void *data) { | ||
395 | struct sway_cursor *cursor = data; | ||
396 | cursor_rebase(cursor); | ||
397 | } | ||
398 | |||
393 | static void handle_map(struct wl_listener *listener, void *data) { | 399 | static void handle_map(struct wl_listener *listener, void *data) { |
394 | struct sway_xwayland_view *xwayland_view = | 400 | struct sway_xwayland_view *xwayland_view = |
395 | wl_container_of(listener, xwayland_view, map); | 401 | wl_container_of(listener, xwayland_view, map); |
@@ -416,7 +422,8 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
416 | // Put it back into the tree | 422 | // Put it back into the tree |
417 | view_map(view, xsurface->surface, xsurface->fullscreen, false); | 423 | view_map(view, xsurface->surface, xsurface->fullscreen, false); |
418 | 424 | ||
419 | transaction_commit_dirty(); | 425 | struct sway_seat *seat = input_manager_current_seat(); |
426 | transaction_commit_dirty_with_callback(do_rebase, seat->cursor); | ||
420 | } | 427 | } |
421 | 428 | ||
422 | static void handle_request_configure(struct wl_listener *listener, void *data) { | 429 | static void handle_request_configure(struct wl_listener *listener, void *data) { |