set position of the drag icon in startdrag()
parent
7a2e0eef74
commit
bf8cc526de
7
dwl.c
7
dwl.c
|
@ -1415,21 +1415,20 @@ motionnotify(uint32_t time)
|
||||||
double sx = 0, sy = 0;
|
double sx = 0, sy = 0;
|
||||||
Client *c = NULL;
|
Client *c = NULL;
|
||||||
struct wlr_surface *surface = NULL;
|
struct wlr_surface *surface = NULL;
|
||||||
|
struct wlr_drag_icon *icon;
|
||||||
|
|
||||||
/* time is 0 in internal calls meant to restore pointer focus. */
|
/* time is 0 in internal calls meant to restore pointer focus. */
|
||||||
if (time) {
|
if (time) {
|
||||||
struct wlr_drag_icon *icon;
|
|
||||||
wlr_idle_notify_activity(idle, seat);
|
wlr_idle_notify_activity(idle, seat);
|
||||||
|
|
||||||
/* Update selmon (even while dragging a window) */
|
/* Update selmon (even while dragging a window) */
|
||||||
if (sloppyfocus)
|
if (sloppyfocus)
|
||||||
selmon = xytomon(cursor->x, cursor->y);
|
selmon = xytomon(cursor->x, cursor->y);
|
||||||
|
}
|
||||||
|
|
||||||
if (seat->drag && (icon = seat->drag->icon))
|
if (seat->drag && (icon = seat->drag->icon))
|
||||||
wlr_scene_node_set_position(icon->data, cursor->x + icon->surface->sx,
|
wlr_scene_node_set_position(icon->data, cursor->x + icon->surface->sx,
|
||||||
cursor->y + icon->surface->sy);
|
cursor->y + icon->surface->sy);
|
||||||
}
|
|
||||||
|
|
||||||
/* If we are currently grabbing the mouse, handle and return */
|
/* If we are currently grabbing the mouse, handle and return */
|
||||||
if (cursor_mode == CurMove) {
|
if (cursor_mode == CurMove) {
|
||||||
/* Move the grabbed client to the new position. */
|
/* Move the grabbed client to the new position. */
|
||||||
|
@ -2081,7 +2080,7 @@ startdrag(struct wl_listener *listener, void *data)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
drag->icon->data = wlr_scene_subsurface_tree_create(layers[LyrTop], drag->icon->surface);
|
drag->icon->data = wlr_scene_subsurface_tree_create(layers[LyrTop], drag->icon->surface);
|
||||||
wlr_scene_node_raise_to_top(drag->icon->data);
|
motionnotify(0);
|
||||||
wl_signal_add(&drag->icon->events.destroy, &drag_icon_destroy);
|
wl_signal_add(&drag->icon->events.destroy, &drag_icon_destroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue