mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-16 06:59:44 -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
|
|
@ -12,14 +12,14 @@
|
|||
#include <wayland-server.h>
|
||||
#include <wlr/types/wlr_seat.h>
|
||||
|
||||
extern const struct
|
||||
wlr_pointer_grab_interface wlr_data_device_pointer_drag_interface;
|
||||
extern const struct wlr_pointer_grab_interface
|
||||
wlr_data_device_pointer_drag_interface;
|
||||
|
||||
extern const struct
|
||||
wlr_keyboard_grab_interface wlr_data_device_keyboard_drag_interface;
|
||||
extern const struct wlr_keyboard_grab_interface
|
||||
wlr_data_device_keyboard_drag_interface;
|
||||
|
||||
extern const struct
|
||||
wlr_touch_grab_interface wlr_data_device_touch_drag_interface;
|
||||
extern const struct wlr_touch_grab_interface
|
||||
wlr_data_device_touch_drag_interface;
|
||||
|
||||
struct wlr_data_device_manager {
|
||||
struct wl_global *global;
|
||||
|
|
@ -72,7 +72,6 @@ struct wlr_data_source {
|
|||
|
||||
// source status
|
||||
bool accepted;
|
||||
struct wlr_data_offer *offer;
|
||||
|
||||
// drag'n'drop status
|
||||
enum wl_data_device_manager_dnd_action current_dnd_action;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue