mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-02 09:01:38 -05:00
data-device: allow multiple devices for the same seat
This commit makes it possible for a single client to have multiple data devices for the same seat. This fixes issues with Firefox. This mainly removes wlr_data_source.offer. We make sure we create one data offer per device. We now make the offer inert when the source is destroyed. Fixes the second half of https://github.com/swaywm/wlroots/issues/1041
This commit is contained in:
parent
eaa852ed77
commit
5d26da9d15
6 changed files with 120 additions and 149 deletions
|
|
@ -19,6 +19,7 @@ extern const struct wlr_surface_role drag_icon_surface_role;
|
|||
struct wlr_data_offer *data_offer_create(struct wl_client *client,
|
||||
struct wlr_data_source *source, uint32_t version);
|
||||
void data_offer_update_action(struct wlr_data_offer *offer);
|
||||
void data_offer_destroy(struct wlr_data_offer *offer);
|
||||
|
||||
struct wlr_client_data_source *client_data_source_create(
|
||||
struct wl_client *client, uint32_t version, uint32_t id,
|
||||
|
|
@ -26,7 +27,7 @@ struct wlr_client_data_source *client_data_source_create(
|
|||
struct wlr_client_data_source *client_data_source_from_resource(
|
||||
struct wl_resource *resource);
|
||||
struct wlr_data_offer *data_source_send_offer(struct wlr_data_source *source,
|
||||
struct wlr_seat_client *target);
|
||||
struct wl_resource *device_resource);
|
||||
void data_source_notify_finish(struct wlr_data_source *source);
|
||||
|
||||
bool seat_client_start_drag(struct wlr_seat_client *client,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue