diff options
Diffstat (limited to 'rootston')
| -rw-r--r-- | rootston/cursor.c | 3 | ||||
| -rw-r--r-- | rootston/output.c | 6 | 
2 files changed, 5 insertions, 4 deletions
diff --git a/rootston/cursor.c b/rootston/cursor.c index bd988a41..6b509640 100644 --- a/rootston/cursor.c +++ b/rootston/cursor.c @@ -313,6 +313,9 @@ static void handle_drag_icon_commit(struct wl_listener *listener, void *data) {  	// TODO the spec hints at rules that can determine whether the drag icon is  	// mapped here, but it is not completely clear so we need to test more  	// toolkits to see how we should interpret the surface state here. +	drag_icon->sx += drag_icon->surface->current->sx; +	drag_icon->sy += drag_icon->surface->current->sy; +  	drag_icon->mapped = drag_icon->surface->texture->valid;  } diff --git a/rootston/output.c b/rootston/output.c index b431cbc3..f50306a3 100644 --- a/rootston/output.c +++ b/rootston/output.c @@ -158,10 +158,8 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {  		struct wlr_surface *icon = drag_icon->surface;  		struct wlr_cursor *cursor = server->input->cursor; -		// TODO should also use the hotspot to determine the location, but -		// hotspot is broken right now. -		double icon_x = cursor->x - icon->current->sx; -		double icon_y = cursor->y - icon->current->sy; +		double icon_x = cursor->x + drag_icon->sx; +		double icon_y = cursor->y + drag_icon->sy;  		render_surface(icon, desktop, wlr_output, &now, icon_x, icon_y, 0);  	}  | 
