aboutsummaryrefslogtreecommitdiff
path: root/sway/input
diff options
context:
space:
mode:
Diffstat (limited to 'sway/input')
-rw-r--r--sway/input/cursor.c2
-rw-r--r--sway/input/seat.c9
2 files changed, 6 insertions, 5 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index be3fc9c7..69a019bb 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -395,6 +395,7 @@ void cursor_send_pointer_motion(struct sway_cursor *cursor, uint32_t time_msec,
}
struct sway_seat *seat = cursor->seat;
+ struct wlr_seat *wlr_seat = seat->wlr_seat;
if (seat->operation != OP_NONE) {
switch (seat->operation) {
@@ -418,7 +419,6 @@ void cursor_send_pointer_motion(struct sway_cursor *cursor, uint32_t time_msec,
return;
}
- struct wlr_seat *wlr_seat = seat->wlr_seat;
struct wlr_surface *surface = NULL;
double sx, sy;
diff --git a/sway/input/seat.c b/sway/input/seat.c
index e86a2b81..5709a7f7 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -222,16 +222,16 @@ void drag_icon_update_position(struct sway_drag_icon *icon) {
struct sway_seat *seat = icon->seat;
struct wlr_cursor *cursor = seat->cursor->cursor;
if (wlr_icon->is_pointer) {
- icon->x = cursor->x + wlr_icon->sx;
- icon->y = cursor->y + wlr_icon->sy;
+ icon->x = cursor->x;
+ icon->y = cursor->y;
} else {
struct wlr_touch_point *point =
wlr_seat_touch_get_point(seat->wlr_seat, wlr_icon->touch_id);
if (point == NULL) {
return;
}
- icon->x = seat->touch_x + wlr_icon->sx;
- icon->y = seat->touch_y + wlr_icon->sy;
+ icon->x = seat->touch_x;
+ icon->y = seat->touch_y;
}
drag_icon_damage_whole(icon);
@@ -289,6 +289,7 @@ static void handle_new_drag_icon(struct wl_listener *listener, void *data) {
wl_list_insert(&root->drag_icons, &icon->link);
drag_icon_update_position(icon);
+ seat_end_mouse_operation(seat);
}
static void collect_focus_iter(struct sway_node *node, void *data) {