diff options
Diffstat (limited to 'sway/input/seatop_move_floating.c')
-rw-r--r-- | sway/input/seatop_move_floating.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sway/input/seatop_move_floating.c b/sway/input/seatop_move_floating.c index 7f501fc9..ddcd4c53 100644 --- a/sway/input/seatop_move_floating.c +++ b/sway/input/seatop_move_floating.c | |||
@@ -1,6 +1,7 @@ | |||
1 | #define _POSIX_C_SOURCE 200809L | 1 | #define _POSIX_C_SOURCE 200809L |
2 | #include <wlr/types/wlr_cursor.h> | 2 | #include <wlr/types/wlr_cursor.h> |
3 | #include "sway/desktop.h" | 3 | #include "sway/desktop.h" |
4 | #include "sway/desktop/transaction.h" | ||
4 | #include "sway/input/cursor.h" | 5 | #include "sway/input/cursor.h" |
5 | #include "sway/input/seat.h" | 6 | #include "sway/input/seat.h" |
6 | 7 | ||
@@ -14,7 +15,8 @@ static void finalize_move(struct sway_seat *seat) { | |||
14 | 15 | ||
15 | // We "move" the container to its own location | 16 | // We "move" the container to its own location |
16 | // so it discovers its output again. | 17 | // so it discovers its output again. |
17 | container_floating_move_to(e->con, e->con->x, e->con->y); | 18 | container_floating_move_to(e->con, e->con->pending.x, e->con->pending.y); |
19 | transaction_commit_dirty(); | ||
18 | 20 | ||
19 | seatop_begin_default(seat); | 21 | seatop_begin_default(seat); |
20 | } | 22 | } |
@@ -40,6 +42,7 @@ static void handle_pointer_motion(struct sway_seat *seat, uint32_t time_msec) { | |||
40 | desktop_damage_whole_container(e->con); | 42 | desktop_damage_whole_container(e->con); |
41 | container_floating_move_to(e->con, cursor->x - e->dx, cursor->y - e->dy); | 43 | container_floating_move_to(e->con, cursor->x - e->dx, cursor->y - e->dy); |
42 | desktop_damage_whole_container(e->con); | 44 | desktop_damage_whole_container(e->con); |
45 | transaction_commit_dirty(); | ||
43 | } | 46 | } |
44 | 47 | ||
45 | static void handle_unref(struct sway_seat *seat, struct sway_container *con) { | 48 | static void handle_unref(struct sway_seat *seat, struct sway_container *con) { |
@@ -67,13 +70,14 @@ void seatop_begin_move_floating(struct sway_seat *seat, | |||
67 | return; | 70 | return; |
68 | } | 71 | } |
69 | e->con = con; | 72 | e->con = con; |
70 | e->dx = cursor->cursor->x - con->x; | 73 | e->dx = cursor->cursor->x - con->pending.x; |
71 | e->dy = cursor->cursor->y - con->y; | 74 | e->dy = cursor->cursor->y - con->pending.y; |
72 | 75 | ||
73 | seat->seatop_impl = &seatop_impl; | 76 | seat->seatop_impl = &seatop_impl; |
74 | seat->seatop_data = e; | 77 | seat->seatop_data = e; |
75 | 78 | ||
76 | container_raise_floating(con); | 79 | container_raise_floating(con); |
80 | transaction_commit_dirty(); | ||
77 | 81 | ||
78 | cursor_set_image(cursor, "grab", NULL); | 82 | cursor_set_image(cursor, "grab", NULL); |
79 | wlr_seat_pointer_notify_clear_focus(seat->wlr_seat); | 83 | wlr_seat_pointer_notify_clear_focus(seat->wlr_seat); |