mirror of
https://github.com/swaywm/sway.git
synced 2024-12-29 16:36:26 +01:00
seat/dnd: support null drag icon surfaces
As per the Wayland spec [1]: > The icon surface is an optional (can be NULL) surface that provides an > icon to be moved around with the cursor. However, as of now Sway "start_drag" signal handler does not starts the DND session unless a non-NULL drag icons is provided. This patch fixes it by skipping handling of the drag icon if it is null. Fixes #5509 [1] https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_data_device Signed-off-by: Nick Diego Yamane <nickdiego@igalia.com>
This commit is contained in:
parent
bac9559665
commit
e5954f321f
1 changed files with 22 additions and 24 deletions
|
@ -470,10 +470,7 @@ static void handle_start_drag(struct wl_listener *listener, void *data) {
|
|||
wl_signal_add(&wlr_drag->events.destroy, &drag->destroy);
|
||||
|
||||
struct wlr_drag_icon *wlr_drag_icon = wlr_drag->icon;
|
||||
if (wlr_drag_icon == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (wlr_drag_icon != NULL) {
|
||||
struct sway_drag_icon *icon = calloc(1, sizeof(struct sway_drag_icon));
|
||||
if (icon == NULL) {
|
||||
sway_log(SWAY_ERROR, "Allocation failed");
|
||||
|
@ -495,6 +492,7 @@ static void handle_start_drag(struct wl_listener *listener, void *data) {
|
|||
wl_list_insert(&root->drag_icons, &icon->link);
|
||||
|
||||
drag_icon_update_position(icon);
|
||||
}
|
||||
seatop_begin_default(seat);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue