diff options
| author | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-03-22 15:02:02 -0600 | 
|---|---|---|
| committer | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-03-22 15:02:02 -0600 | 
| commit | 9aec6049ecbefe3618f34002d2239cc9462c07e9 (patch) | |
| tree | 89741089d872e2efd70e16fc75012804217b5ddf /dwl.c | |
| parent | 330792b1fc37db86743d7c186577776e05295e00 (diff) | |
clients now works as expected in drag motion
Diffstat (limited to 'dwl.c')
| -rw-r--r-- | dwl.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| @@ -1416,16 +1416,11 @@ 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 */ @@ -1564,6 +1559,7 @@ 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); @@ -1585,6 +1581,13 @@ 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 | 
