diff options
author | Drew DeVault <[email protected]> | 2018-10-24 15:45:47 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2018-10-24 15:45:47 +0200 |
commit | 46fc4ba4e3e2444ff68a894ab837d8e1e3324e0a (patch) | |
tree | 1164f5d83b421ef5e2bdf49764a096b9551e5363 /sway/desktop/xdg_shell.c | |
parent | 2fa767ab57c75aa21636fd88ccf6d6539c52d310 (diff) | |
parent | bdae625cb344209424841a7c5f0c0967773c8c10 (diff) |
Merge pull request #2957 from RyanDwyer/rebase-cursor-after-map
Rebase the cursor after mapping a view
Diffstat (limited to 'sway/desktop/xdg_shell.c')
-rw-r--r-- | sway/desktop/xdg_shell.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index fda1bdef..064e2707 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c @@ -9,6 +9,7 @@ #include "sway/decoration.h" #include "sway/desktop.h" #include "sway/desktop/transaction.h" +#include "sway/input/cursor.h" #include "sway/input/input-manager.h" #include "sway/input/seat.h" #include "sway/output.h" @@ -396,6 +397,11 @@ static void handle_unmap(struct wl_listener *listener, void *data) { wl_list_remove(&xdg_shell_view->set_app_id.link); } +static void do_rebase(void *data) { + struct sway_cursor *cursor = data; + cursor_rebase(cursor); +} + static void handle_map(struct wl_listener *listener, void *data) { struct sway_xdg_shell_view *xdg_shell_view = wl_container_of(listener, xdg_shell_view, map); @@ -422,7 +428,8 @@ static void handle_map(struct wl_listener *listener, void *data) { view_map(view, view->wlr_xdg_surface->surface, xdg_surface->toplevel->client_pending.fullscreen, csd); - transaction_commit_dirty(); + struct sway_seat *seat = input_manager_current_seat(); + transaction_commit_dirty_with_callback(do_rebase, seat->cursor); xdg_shell_view->commit.notify = handle_commit; wl_signal_add(&xdg_surface->surface->events.commit, |