summaryrefslogtreecommitdiff
path: root/sway/desktop/xwayland.c
diff options
context:
space:
mode:
authorDrew DeVault <[email protected]>2018-10-24 15:45:47 +0200
committerGitHub <[email protected]>2018-10-24 15:45:47 +0200
commit46fc4ba4e3e2444ff68a894ab837d8e1e3324e0a (patch)
tree1164f5d83b421ef5e2bdf49764a096b9551e5363 /sway/desktop/xwayland.c
parent2fa767ab57c75aa21636fd88ccf6d6539c52d310 (diff)
parentbdae625cb344209424841a7c5f0c0967773c8c10 (diff)
Merge pull request #2957 from RyanDwyer/rebase-cursor-after-map
Rebase the cursor after mapping a view
Diffstat (limited to 'sway/desktop/xwayland.c')
-rw-r--r--sway/desktop/xwayland.c9
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 @@
#include "log.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"
@@ -390,6 +391,11 @@ static void handle_unmap(struct wl_listener *listener, void *data) {
wl_list_remove(&xwayland_view->commit.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_xwayland_view *xwayland_view =
wl_container_of(listener, xwayland_view, map);
@@ -416,7 +422,8 @@ static void handle_map(struct wl_listener *listener, void *data) {
// Put it back into the tree
view_map(view, xsurface->surface, xsurface->fullscreen, false);
- transaction_commit_dirty();
+ struct sway_seat *seat = input_manager_current_seat();
+ transaction_commit_dirty_with_callback(do_rebase, seat->cursor);
}
static void handle_request_configure(struct wl_listener *listener, void *data) {