summaryrefslogtreecommitdiffstats
path: root/dwl.c
diff options
context:
space:
mode:
authorLeonardo Hernández Hernández <leohdz172@protonmail.com>2022-03-23 12:13:49 -0600
committerLeonardo Hernández Hernández <leohdz172@protonmail.com>2022-03-23 18:22:40 -0600
commitf353a0e759037e13419ddab6747afd6b6c736cb2 (patch)
tree573b769552d393365080cb22318a193e4b8d0c82 /dwl.c
parent281c947e5f19b5c304baa51de9d90e69c80a5a9a (diff)
downloaddwl-f353a0e759037e13419ddab6747afd6b6c736cb2.tar.gz
dwl-f353a0e759037e13419ddab6747afd6b6c736cb2.tar.bz2
dwl-f353a0e759037e13419ddab6747afd6b6c736cb2.zip
Revert "clients now works as expected in drag motion"
This reverts commit 9aec6049ecbefe3618f34002d2239cc9462c07e9. this problem is caused because xytonode() returns the surface of the drag icon
Diffstat (limited to 'dwl.c')
-rw-r--r--dwl.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/dwl.c b/dwl.c
index 2d58079..71996e7 100644
--- a/dwl.c
+++ b/dwl.c
@@ -1291,11 +1291,16 @@ motionnotify(uint32_t time)
/* time is 0 in internal calls meant to restore pointer focus. */
if (time) {
+ struct wlr_drag_icon *icon;
wlr_idle_notify_activity(idle, seat);
/* Update selmon (even while dragging a window) */
if (sloppyfocus)
selmon = xytomon(cursor->x, cursor->y);
+
+ if (seat->drag && (icon = seat->drag->icon))
+ wlr_scene_node_set_position(icon->data, cursor->x + icon->surface->sx,
+ cursor->y + icon->surface->sy);
}
/* If we are currently grabbing the mouse, handle and return */
@@ -1434,7 +1439,6 @@ pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,
{
struct timespec now;
int internal_call = !time;
- struct wlr_drag_icon *icon;
if (sloppyfocus && !internal_call && c && !client_is_unmanaged(c))
focusclient(c, 0);
@@ -1456,13 +1460,6 @@ pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,
wlr_seat_pointer_notify_enter(seat, surface, sx, sy);
wlr_seat_pointer_notify_motion(seat, time, sx, sy);
- /* If there are is a drag icon, update its position */
- /* For anyone who wants to change this function: for some reason
- * (maybe a wlroots bug?, or is it intended?) if we change the node position
- * before telling the seat for a motion, the clients don't recognize the drag */
- if (seat->drag && (icon = seat->drag->icon))
- wlr_scene_node_set_position(icon->data, cursor->x + icon->surface->sx,
- cursor->y + icon->surface->sy);
}
void