diff --git a/.clang-format-ignore b/.clang-format-ignore index bcc0d531b9b4..be50d9ddb73f 100644 --- a/.clang-format-ignore +++ b/.clang-format-ignore @@ -42,8 +42,6 @@ media/mp4parse-rust/mp4parse.h security/manager/ssl/StaticHPKPins.h widget/gtk/wayland/gtk-primary-selection-client-protocol.h widget/gtk/wayland/gtk-primary-selection-protocol.c -widget/gtk/wayland/primary-selection-unstable-v1-client-protocol.h -widget/gtk/wayland/primary-selection-unstable-v1-protocol.c # Ignored because these files are used to generate a windows.h STL wrapper, # and reformatting them can break generating that wrapper. diff --git a/widget/gtk/nsClipboardWayland.cpp b/widget/gtk/nsClipboardWayland.cpp index f8e1031e9eea..48a8c9025724 100644 --- a/widget/gtk/nsClipboardWayland.cpp +++ b/widget/gtk/nsClipboardWayland.cpp @@ -314,27 +314,15 @@ WaylandDataOffer::~WaylandDataOffer(void) { } bool PrimaryDataOffer::RequestDataTransfer(const char* aMimeType, int fd) { - if (mPrimaryDataOfferGtk) { - gtk_primary_selection_offer_receive(mPrimaryDataOfferGtk, aMimeType, fd); - return true; - } - if (mPrimaryDataOfferZwpV1) { - zwp_primary_selection_offer_v1_receive(mPrimaryDataOfferZwpV1, aMimeType, - fd); + if (mPrimaryDataOffer) { + gtk_primary_selection_offer_receive(mPrimaryDataOffer, aMimeType, fd); return true; } return false; } static void primary_data_offer( - void* data, gtk_primary_selection_offer* primary_selection_offer, - const char* mime_type) { - auto* offer = static_cast(data); - offer->AddMIMEType(mime_type); -} - -static void primary_data_offer( - void* data, zwp_primary_selection_offer_v1* primary_selection_offer, + void* data, gtk_primary_selection_offer* gtk_primary_selection_offer, const char* mime_type) { auto* offer = static_cast(data); offer->AddMIMEType(mime_type); @@ -346,31 +334,18 @@ static void primary_data_offer( * gtk_primary_selection_offer. */ static const struct gtk_primary_selection_offer_listener - primary_selection_offer_listener_gtk = {primary_data_offer}; - -static const struct zwp_primary_selection_offer_v1_listener - primary_selection_offer_listener_zwp_v1 = {primary_data_offer}; + primary_selection_offer_listener = {primary_data_offer}; PrimaryDataOffer::PrimaryDataOffer( gtk_primary_selection_offer* aPrimaryDataOffer) - : mPrimaryDataOfferGtk(aPrimaryDataOffer), mPrimaryDataOfferZwpV1(nullptr) { + : mPrimaryDataOffer(aPrimaryDataOffer) { gtk_primary_selection_offer_add_listener( - aPrimaryDataOffer, &primary_selection_offer_listener_gtk, this); -} - -PrimaryDataOffer::PrimaryDataOffer( - zwp_primary_selection_offer_v1* aPrimaryDataOffer) - : mPrimaryDataOfferGtk(nullptr), mPrimaryDataOfferZwpV1(aPrimaryDataOffer) { - zwp_primary_selection_offer_v1_add_listener( - aPrimaryDataOffer, &primary_selection_offer_listener_zwp_v1, this); + aPrimaryDataOffer, &primary_selection_offer_listener, this); } PrimaryDataOffer::~PrimaryDataOffer(void) { - if (mPrimaryDataOfferGtk) { - gtk_primary_selection_offer_destroy(mPrimaryDataOfferGtk); - } - if (mPrimaryDataOfferZwpV1) { - zwp_primary_selection_offer_v1_destroy(mPrimaryDataOfferZwpV1); + if (mPrimaryDataOffer) { + gtk_primary_selection_offer_destroy(mPrimaryDataOffer); } } @@ -469,20 +444,6 @@ void nsRetrievalContextWayland::RegisterNewDataOffer( } } -void nsRetrievalContextWayland::RegisterNewDataOffer( - zwp_primary_selection_offer_v1* aPrimaryDataOffer) { - DataOffer* dataOffer = static_cast( - g_hash_table_lookup(mActiveOffers, aPrimaryDataOffer)); - MOZ_ASSERT( - dataOffer == nullptr, - "Registered PrimaryDataOffer already exists. Wayland protocol error?"); - - if (!dataOffer) { - dataOffer = new PrimaryDataOffer(aPrimaryDataOffer); - g_hash_table_insert(mActiveOffers, aPrimaryDataOffer, dataOffer); - } -} - void nsRetrievalContextWayland::SetClipboardDataOffer( wl_data_offer* aWaylandDataOffer) { // Delete existing clipboard data offer @@ -519,24 +480,6 @@ void nsRetrievalContextWayland::SetPrimaryDataOffer( } } -void nsRetrievalContextWayland::SetPrimaryDataOffer( - zwp_primary_selection_offer_v1* aPrimaryDataOffer) { - // Release any primary offer we have. - mPrimaryOffer = nullptr; - - // aPrimaryDataOffer can be null which means we lost - // the mouse selection. - if (aPrimaryDataOffer) { - DataOffer* dataOffer = static_cast( - g_hash_table_lookup(mActiveOffers, aPrimaryDataOffer)); - NS_ASSERTION(dataOffer, "We're missing primary data offer!"); - if (dataOffer) { - g_hash_table_remove(mActiveOffers, aPrimaryDataOffer); - mPrimaryOffer = WrapUnique(dataOffer); - } - } -} - void nsRetrievalContextWayland::AddDragAndDropDataOffer( wl_data_offer* aDropDataOffer) { // Remove any existing D&D contexts. @@ -673,43 +616,24 @@ static const struct wl_data_device_listener data_device_listener = { data_device_motion, data_device_drop, data_device_selection}; static void primary_selection_data_offer( - void* data, struct gtk_primary_selection_device* primary_selection_device, - struct gtk_primary_selection_offer* primary_offer) { + void* data, + struct gtk_primary_selection_device* gtk_primary_selection_device, + struct gtk_primary_selection_offer* gtk_primary_offer) { LOGCLIP(("primary_selection_data_offer() callback\n")); // create and add listener nsRetrievalContextWayland* context = static_cast(data); - context->RegisterNewDataOffer(primary_offer); -} - -static void primary_selection_data_offer( - void* data, - struct zwp_primary_selection_device_v1* primary_selection_device, - struct zwp_primary_selection_offer_v1* primary_offer) { - LOGCLIP(("primary_selection_data_offer() callback\n")); - // create and add listener - nsRetrievalContextWayland* context = - static_cast(data); - context->RegisterNewDataOffer(primary_offer); -} - -static void primary_selection_selection( - void* data, struct gtk_primary_selection_device* primary_selection_device, - struct gtk_primary_selection_offer* primary_offer) { - LOGCLIP(("primary_selection_selection() callback\n")); - nsRetrievalContextWayland* context = - static_cast(data); - context->SetPrimaryDataOffer(primary_offer); + context->RegisterNewDataOffer(gtk_primary_offer); } static void primary_selection_selection( void* data, - struct zwp_primary_selection_device_v1* primary_selection_device, - struct zwp_primary_selection_offer_v1* primary_offer) { + struct gtk_primary_selection_device* gtk_primary_selection_device, + struct gtk_primary_selection_offer* gtk_primary_offer) { LOGCLIP(("primary_selection_selection() callback\n")); nsRetrievalContextWayland* context = static_cast(data); - context->SetPrimaryDataOffer(primary_offer); + context->SetPrimaryDataOffer(gtk_primary_offer); } /* gtk_primary_selection_device callback description: @@ -726,20 +650,13 @@ static void primary_selection_selection( * there's no primary selection. */ static const struct gtk_primary_selection_device_listener - primary_selection_device_listener_gtk = { - primary_selection_data_offer, - primary_selection_selection, -}; - -static const struct zwp_primary_selection_device_v1_listener - primary_selection_device_listener_zwp_v1 = { + primary_selection_device_listener = { primary_selection_data_offer, primary_selection_selection, }; bool nsRetrievalContextWayland::HasSelectionSupport(void) { - return (mDisplay->GetPrimarySelectionDeviceManagerZwpV1() != nullptr || - mDisplay->GetPrimarySelectionDeviceManagerGtk() != nullptr); + return mDisplay->GetPrimarySelectionDeviceManager() != nullptr; } nsRetrievalContextWayland::nsRetrievalContextWayland(void) @@ -756,20 +673,14 @@ nsRetrievalContextWayland::nsRetrievalContextWayland(void) mDisplay->GetDataDeviceManager(), mDisplay->GetSeat()); wl_data_device_add_listener(dataDevice, &data_device_listener, this); - if (mDisplay->GetPrimarySelectionDeviceManagerZwpV1()) { - zwp_primary_selection_device_v1* primaryDataDevice = - zwp_primary_selection_device_manager_v1_get_device( - mDisplay->GetPrimarySelectionDeviceManagerZwpV1(), - mDisplay->GetSeat()); - zwp_primary_selection_device_v1_add_listener( - primaryDataDevice, &primary_selection_device_listener_zwp_v1, this); - } else if (mDisplay->GetPrimarySelectionDeviceManagerGtk()) { + gtk_primary_selection_device_manager* manager = + mDisplay->GetPrimarySelectionDeviceManager(); + if (manager) { gtk_primary_selection_device* primaryDataDevice = - gtk_primary_selection_device_manager_get_device( - mDisplay->GetPrimarySelectionDeviceManagerGtk(), - mDisplay->GetSeat()); + gtk_primary_selection_device_manager_get_device(manager, + mDisplay->GetSeat()); gtk_primary_selection_device_add_listener( - primaryDataDevice, &primary_selection_device_listener_gtk, this); + primaryDataDevice, &primary_selection_device_listener, this); } mInitialized = true; diff --git a/widget/gtk/nsClipboardWayland.h b/widget/gtk/nsClipboardWayland.h index ddf5d40dc6dc..6a1b6c715d73 100644 --- a/widget/gtk/nsClipboardWayland.h +++ b/widget/gtk/nsClipboardWayland.h @@ -15,6 +15,8 @@ #include "mozilla/UniquePtr.h" #include "nsClipboard.h" #include "nsWaylandDisplay.h" +#include "mozwayland/mozwayland.h" +#include "wayland/gtk-primary-selection-client-protocol.h" struct FastTrackClipboard; @@ -67,7 +69,6 @@ class WaylandDataOffer : public DataOffer { class PrimaryDataOffer : public DataOffer { public: explicit PrimaryDataOffer(gtk_primary_selection_offer* aPrimaryDataOffer); - explicit PrimaryDataOffer(zwp_primary_selection_offer_v1* aPrimaryDataOffer); void SetAvailableDragActions(uint32_t aWaylandActions){}; virtual ~PrimaryDataOffer(); @@ -75,8 +76,7 @@ class PrimaryDataOffer : public DataOffer { private: bool RequestDataTransfer(const char* aMimeType, int fd) override; - gtk_primary_selection_offer* mPrimaryDataOfferGtk; - zwp_primary_selection_offer_v1* mPrimaryDataOfferZwpV1; + gtk_primary_selection_offer* mPrimaryDataOffer; }; class nsWaylandDragContext : public nsISupports { @@ -124,11 +124,9 @@ class nsRetrievalContextWayland : public nsRetrievalContext { void RegisterNewDataOffer(wl_data_offer* aWaylandDataOffer); void RegisterNewDataOffer(gtk_primary_selection_offer* aPrimaryDataOffer); - void RegisterNewDataOffer(zwp_primary_selection_offer_v1* aPrimaryDataOffer); void SetClipboardDataOffer(wl_data_offer* aWaylandDataOffer); void SetPrimaryDataOffer(gtk_primary_selection_offer* aPrimaryDataOffer); - void SetPrimaryDataOffer(zwp_primary_selection_offer_v1* aPrimaryDataOffer); void AddDragAndDropDataOffer(wl_data_offer* aWaylandDataOffer); nsWaylandDragContext* GetDragContext(); diff --git a/widget/gtk/nsWaylandDisplay.cpp b/widget/gtk/nsWaylandDisplay.cpp index 69fb6b470e7f..9a4cbb983fd4 100644 --- a/widget/gtk/nsWaylandDisplay.cpp +++ b/widget/gtk/nsWaylandDisplay.cpp @@ -127,12 +127,7 @@ void nsWaylandDisplay::SetSeat(wl_seat* aSeat) { mSeat = aSeat; } void nsWaylandDisplay::SetPrimarySelectionDeviceManager( gtk_primary_selection_device_manager* aPrimarySelectionDeviceManager) { - mPrimarySelectionDeviceManagerGtk = aPrimarySelectionDeviceManager; -} - -void nsWaylandDisplay::SetPrimarySelectionDeviceManager( - zwp_primary_selection_device_manager_v1* aPrimarySelectionDeviceManager) { - mPrimarySelectionDeviceManagerZwpV1 = aPrimarySelectionDeviceManager; + mPrimarySelectionDeviceManager = aPrimarySelectionDeviceManager; } void nsWaylandDisplay::SetIdleInhibitManager( @@ -172,15 +167,6 @@ static void global_registry_handler(void* data, wl_registry* registry, wl_proxy_set_queue((struct wl_proxy*)primary_selection_device_manager, display->GetEventQueue()); display->SetPrimarySelectionDeviceManager(primary_selection_device_manager); - } else if (strcmp(interface, "zwp_primary_selection_device_manager_v1") == - 0) { - auto* primary_selection_device_manager = - WaylandRegistryBind( - registry, id, &zwp_primary_selection_device_manager_v1_interface, - 1); - wl_proxy_set_queue((struct wl_proxy*)primary_selection_device_manager, - display->GetEventQueue()); - display->SetPrimarySelectionDeviceManager(primary_selection_device_manager); } else if (strcmp(interface, "zwp_idle_inhibit_manager_v1") == 0) { auto* idle_inhibit_manager = WaylandRegistryBind( @@ -298,8 +284,7 @@ nsWaylandDisplay::nsWaylandDisplay(wl_display* aDisplay, bool aLighWrapper) mSeat(nullptr), mShm(nullptr), mSyncCallback(nullptr), - mPrimarySelectionDeviceManagerGtk(nullptr), - mPrimarySelectionDeviceManagerZwpV1(nullptr), + mPrimarySelectionDeviceManager(nullptr), mIdleInhibitManager(nullptr), mRegistry(nullptr), mExplicitSync(false) { diff --git a/widget/gtk/nsWaylandDisplay.h b/widget/gtk/nsWaylandDisplay.h index f3d1d1243bcf..ffec6737877b 100644 --- a/widget/gtk/nsWaylandDisplay.h +++ b/widget/gtk/nsWaylandDisplay.h @@ -8,16 +8,16 @@ #ifndef __MOZ_WAYLAND_DISPLAY_H__ #define __MOZ_WAYLAND_DISPLAY_H__ +#include "mozilla/widget/mozwayland.h" +#include "mozilla/widget/gtk-primary-selection-client-protocol.h" +#include "mozilla/widget/idle-inhibit-unstable-v1-client-protocol.h" + #include "base/message_loop.h" // for MessageLoop #include "base/task.h" // for NewRunnableMethod, etc #include "mozilla/StaticMutex.h" -#include "mozilla/widget/mozwayland.h" #include "mozilla/widget/gbm.h" -#include "mozilla/widget/gtk-primary-selection-client-protocol.h" -#include "mozilla/widget/idle-inhibit-unstable-v1-client-protocol.h" #include "mozilla/widget/linux-dmabuf-unstable-v1-client-protocol.h" -#include "mozilla/widget/primary-selection-unstable-v1-client-protocol.h" namespace mozilla { namespace widget { @@ -51,13 +51,8 @@ class nsWaylandDisplay { }; wl_seat* GetSeat(void) { return mSeat; }; wl_shm* GetShm(void) { return mShm; }; - gtk_primary_selection_device_manager* GetPrimarySelectionDeviceManagerGtk( - void) { - return mPrimarySelectionDeviceManagerGtk; - }; - zwp_primary_selection_device_manager_v1* - GetPrimarySelectionDeviceManagerZwpV1(void) { - return mPrimarySelectionDeviceManagerZwpV1; + gtk_primary_selection_device_manager* GetPrimarySelectionDeviceManager(void) { + return mPrimarySelectionDeviceManager; }; zwp_idle_inhibit_manager_v1* GetIdleInhibitManager(void) { return mIdleInhibitManager; @@ -72,8 +67,6 @@ class nsWaylandDisplay { void SetSeat(wl_seat* aSeat); void SetPrimarySelectionDeviceManager( gtk_primary_selection_device_manager* aPrimarySelectionDeviceManager); - void SetPrimarySelectionDeviceManager( - zwp_primary_selection_device_manager_v1* aPrimarySelectionDeviceManager); void SetIdleInhibitManager(zwp_idle_inhibit_manager_v1* aIdleInhibitManager); MessageLoop* GetThreadLoop() { return mThreadLoop; } @@ -94,8 +87,7 @@ class nsWaylandDisplay { wl_seat* mSeat; wl_shm* mShm; wl_callback* mSyncCallback; - gtk_primary_selection_device_manager* mPrimarySelectionDeviceManagerGtk; - zwp_primary_selection_device_manager_v1* mPrimarySelectionDeviceManagerZwpV1; + gtk_primary_selection_device_manager* mPrimarySelectionDeviceManager; zwp_idle_inhibit_manager_v1* mIdleInhibitManager; wl_registry* mRegistry; bool mExplicitSync; diff --git a/widget/gtk/wayland/gtk-primary-selection-client-protocol.h b/widget/gtk/wayland/gtk-primary-selection-client-protocol.h index 770c35e03f05..8450512d2c03 100644 --- a/widget/gtk/wayland/gtk-primary-selection-client-protocol.h +++ b/widget/gtk/wayland/gtk-primary-selection-client-protocol.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.18.0 */ +/* Generated by wayland-scanner 1.14.0 */ #ifndef GTK_PRIMARY_SELECTION_CLIENT_PROTOCOL_H #define GTK_PRIMARY_SELECTION_CLIENT_PROTOCOL_H diff --git a/widget/gtk/wayland/gtk-primary-selection-protocol.c b/widget/gtk/wayland/gtk-primary-selection-protocol.c index b42176753ca0..4f4ccca99914 100644 --- a/widget/gtk/wayland/gtk-primary-selection-protocol.c +++ b/widget/gtk/wayland/gtk-primary-selection-protocol.c @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.18.0 */ +/* Generated by wayland-scanner 1.14.0 */ /* * Copyright © 2015, 2016 Red Hat @@ -25,25 +25,15 @@ #include #include +#include #include #include "wayland-util.h" -#ifndef __has_attribute -# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ -#endif - -#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4) -#define WL_PRIVATE __attribute__ ((visibility("hidden"))) -#else -#define WL_PRIVATE -#endif - extern const struct wl_interface gtk_primary_selection_device_interface; extern const struct wl_interface gtk_primary_selection_offer_interface; extern const struct wl_interface gtk_primary_selection_source_interface; -extern const struct wl_interface wl_seat_interface; -static const struct wl_interface *gtk_primary_selection_types[] = { +static const struct wl_interface *types[] = { NULL, NULL, >k_primary_selection_source_interface, @@ -56,61 +46,60 @@ static const struct wl_interface *gtk_primary_selection_types[] = { }; static const struct wl_message gtk_primary_selection_device_manager_requests[] = { - { "create_source", "n", gtk_primary_selection_types + 2 }, - { "get_device", "no", gtk_primary_selection_types + 3 }, - { "destroy", "", gtk_primary_selection_types + 0 }, + { "create_source", "n", types + 2 }, + { "get_device", "no", types + 3 }, + { "destroy", "", types + 0 }, }; -WL_PRIVATE const struct wl_interface gtk_primary_selection_device_manager_interface = { +const struct wl_interface gtk_primary_selection_device_manager_interface = { "gtk_primary_selection_device_manager", 1, 3, gtk_primary_selection_device_manager_requests, 0, NULL, }; static const struct wl_message gtk_primary_selection_device_requests[] = { - { "set_selection", "?ou", gtk_primary_selection_types + 5 }, - { "destroy", "", gtk_primary_selection_types + 0 }, + { "set_selection", "?ou", types + 5 }, + { "destroy", "", types + 0 }, }; static const struct wl_message gtk_primary_selection_device_events[] = { - { "data_offer", "n", gtk_primary_selection_types + 7 }, - { "selection", "?o", gtk_primary_selection_types + 8 }, + { "data_offer", "n", types + 7 }, + { "selection", "?o", types + 8 }, }; -WL_PRIVATE const struct wl_interface gtk_primary_selection_device_interface = { +const struct wl_interface gtk_primary_selection_device_interface = { "gtk_primary_selection_device", 1, 2, gtk_primary_selection_device_requests, 2, gtk_primary_selection_device_events, }; static const struct wl_message gtk_primary_selection_offer_requests[] = { - { "receive", "sh", gtk_primary_selection_types + 0 }, - { "destroy", "", gtk_primary_selection_types + 0 }, + { "receive", "sh", types + 0 }, + { "destroy", "", types + 0 }, }; static const struct wl_message gtk_primary_selection_offer_events[] = { - { "offer", "s", gtk_primary_selection_types + 0 }, + { "offer", "s", types + 0 }, }; -WL_PRIVATE const struct wl_interface gtk_primary_selection_offer_interface = { +const struct wl_interface gtk_primary_selection_offer_interface = { "gtk_primary_selection_offer", 1, 2, gtk_primary_selection_offer_requests, 1, gtk_primary_selection_offer_events, }; static const struct wl_message gtk_primary_selection_source_requests[] = { - { "offer", "s", gtk_primary_selection_types + 0 }, - { "destroy", "", gtk_primary_selection_types + 0 }, + { "offer", "s", types + 0 }, + { "destroy", "", types + 0 }, }; static const struct wl_message gtk_primary_selection_source_events[] = { - { "send", "sh", gtk_primary_selection_types + 0 }, - { "cancelled", "", gtk_primary_selection_types + 0 }, + { "send", "sh", types + 0 }, + { "cancelled", "", types + 0 }, }; -WL_PRIVATE const struct wl_interface gtk_primary_selection_source_interface = { +const struct wl_interface gtk_primary_selection_source_interface = { "gtk_primary_selection_source", 1, 2, gtk_primary_selection_source_requests, 2, gtk_primary_selection_source_events, }; - diff --git a/widget/gtk/wayland/moz.build b/widget/gtk/wayland/moz.build index 63646de73612..0de7427c15aa 100644 --- a/widget/gtk/wayland/moz.build +++ b/widget/gtk/wayland/moz.build @@ -10,8 +10,7 @@ with Files("**"): SOURCES += [ 'gtk-primary-selection-protocol.c', 'idle-inhibit-unstable-v1-protocol.c', - 'linux-dmabuf-unstable-v1-protocol.c', - 'primary-selection-unstable-v1-protocol.c' + 'linux-dmabuf-unstable-v1-protocol.c' ] EXPORTS.mozilla.widget += [ @@ -19,7 +18,6 @@ EXPORTS.mozilla.widget += [ 'gtk-primary-selection-client-protocol.h', 'idle-inhibit-unstable-v1-client-protocol.h', 'linux-dmabuf-unstable-v1-client-protocol.h', - 'primary-selection-unstable-v1-client-protocol.h', 'va_drmcommon.h' ] diff --git a/widget/gtk/wayland/primary-selection-unstable-v1-client-protocol.h b/widget/gtk/wayland/primary-selection-unstable-v1-client-protocol.h deleted file mode 100644 index 998266c3dbd9..000000000000 --- a/widget/gtk/wayland/primary-selection-unstable-v1-client-protocol.h +++ /dev/null @@ -1,578 +0,0 @@ -/* Generated by wayland-scanner 1.18.0 */ - -#ifndef WP_PRIMARY_SELECTION_UNSTABLE_V1_CLIENT_PROTOCOL_H -#define WP_PRIMARY_SELECTION_UNSTABLE_V1_CLIENT_PROTOCOL_H - -#include -#include -#include "wayland-client.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @page page_wp_primary_selection_unstable_v1 The wp_primary_selection_unstable_v1 protocol - * Primary selection protocol - * - * @section page_desc_wp_primary_selection_unstable_v1 Description - * - * This protocol provides the ability to have a primary selection device to - * match that of the X server. This primary selection is a shortcut to the - * common clipboard selection, where text just needs to be selected in order - * to allow copying it elsewhere. The de facto way to perform this action - * is the middle mouse button, although it is not limited to this one. - * - * Clients wishing to honor primary selection should create a primary - * selection source and set it as the selection through - * wp_primary_selection_device.set_selection whenever the text selection - * changes. In order to minimize calls in pointer-driven text selection, - * it should happen only once after the operation finished. Similarly, - * a NULL source should be set when text is unselected. - * - * wp_primary_selection_offer objects are first announced through the - * wp_primary_selection_device.data_offer event. Immediately after this event, - * the primary data offer will emit wp_primary_selection_offer.offer events - * to let know of the mime types being offered. - * - * When the primary selection changes, the client with the keyboard focus - * will receive wp_primary_selection_device.selection events. Only the client - * with the keyboard focus will receive such events with a non-NULL - * wp_primary_selection_offer. Across keyboard focus changes, previously - * focused clients will receive wp_primary_selection_device.events with a - * NULL wp_primary_selection_offer. - * - * In order to request the primary selection data, the client must pass - * a recent serial pertaining to the press event that is triggering the - * operation, if the compositor deems the serial valid and recent, the - * wp_primary_selection_source.send event will happen in the other end - * to let the transfer begin. The client owning the primary selection - * should write the requested data, and close the file descriptor - * immediately. - * - * If the primary selection owner client disappeared during the transfer, - * the client reading the data will receive a - * wp_primary_selection_device.selection event with a NULL - * wp_primary_selection_offer, the client should take this as a hint - * to finish the reads related to the no longer existing offer. - * - * The primary selection owner should be checking for errors during - * writes, merely cancelling the ongoing transfer if any happened. - * - * @section page_ifaces_wp_primary_selection_unstable_v1 Interfaces - * - @subpage page_iface_zwp_primary_selection_device_manager_v1 - X primary selection emulation - * - @subpage page_iface_zwp_primary_selection_device_v1 - - * - @subpage page_iface_zwp_primary_selection_offer_v1 - offer to transfer primary selection contents - * - @subpage page_iface_zwp_primary_selection_source_v1 - offer to replace the contents of the primary selection - * @section page_copyright_wp_primary_selection_unstable_v1 Copyright - *
- *
- * Copyright © 2015, 2016 Red Hat
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- * 
- */ -struct wl_seat; -struct zwp_primary_selection_device_manager_v1; -struct zwp_primary_selection_device_v1; -struct zwp_primary_selection_offer_v1; -struct zwp_primary_selection_source_v1; - -/** - * @page page_iface_zwp_primary_selection_device_manager_v1 zwp_primary_selection_device_manager_v1 - * @section page_iface_zwp_primary_selection_device_manager_v1_desc Description - * - * The primary selection device manager is a singleton global object that - * provides access to the primary selection. It allows to create - * wp_primary_selection_source objects, as well as retrieving the per-seat - * wp_primary_selection_device objects. - * @section page_iface_zwp_primary_selection_device_manager_v1_api API - * See @ref iface_zwp_primary_selection_device_manager_v1. - */ -/** - * @defgroup iface_zwp_primary_selection_device_manager_v1 The zwp_primary_selection_device_manager_v1 interface - * - * The primary selection device manager is a singleton global object that - * provides access to the primary selection. It allows to create - * wp_primary_selection_source objects, as well as retrieving the per-seat - * wp_primary_selection_device objects. - */ -extern const struct wl_interface zwp_primary_selection_device_manager_v1_interface; -/** - * @page page_iface_zwp_primary_selection_device_v1 zwp_primary_selection_device_v1 - * @section page_iface_zwp_primary_selection_device_v1_api API - * See @ref iface_zwp_primary_selection_device_v1. - */ -/** - * @defgroup iface_zwp_primary_selection_device_v1 The zwp_primary_selection_device_v1 interface - */ -extern const struct wl_interface zwp_primary_selection_device_v1_interface; -/** - * @page page_iface_zwp_primary_selection_offer_v1 zwp_primary_selection_offer_v1 - * @section page_iface_zwp_primary_selection_offer_v1_desc Description - * - * A wp_primary_selection_offer represents an offer to transfer the contents - * of the primary selection clipboard to the client. Similar to - * wl_data_offer, the offer also describes the mime types that the data can - * be converted to and provides the mechanisms for transferring the data - * directly to the client. - * @section page_iface_zwp_primary_selection_offer_v1_api API - * See @ref iface_zwp_primary_selection_offer_v1. - */ -/** - * @defgroup iface_zwp_primary_selection_offer_v1 The zwp_primary_selection_offer_v1 interface - * - * A wp_primary_selection_offer represents an offer to transfer the contents - * of the primary selection clipboard to the client. Similar to - * wl_data_offer, the offer also describes the mime types that the data can - * be converted to and provides the mechanisms for transferring the data - * directly to the client. - */ -extern const struct wl_interface zwp_primary_selection_offer_v1_interface; -/** - * @page page_iface_zwp_primary_selection_source_v1 zwp_primary_selection_source_v1 - * @section page_iface_zwp_primary_selection_source_v1_desc Description - * - * The source side of a wp_primary_selection_offer, it provides a way to - * describe the offered data and respond to requests to transfer the - * requested contents of the primary selection clipboard. - * @section page_iface_zwp_primary_selection_source_v1_api API - * See @ref iface_zwp_primary_selection_source_v1. - */ -/** - * @defgroup iface_zwp_primary_selection_source_v1 The zwp_primary_selection_source_v1 interface - * - * The source side of a wp_primary_selection_offer, it provides a way to - * describe the offered data and respond to requests to transfer the - * requested contents of the primary selection clipboard. - */ -extern const struct wl_interface zwp_primary_selection_source_v1_interface; - -#define ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_CREATE_SOURCE 0 -#define ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_GET_DEVICE 1 -#define ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_DESTROY 2 - - -/** - * @ingroup iface_zwp_primary_selection_device_manager_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_CREATE_SOURCE_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_device_manager_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_GET_DEVICE_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_device_manager_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_DESTROY_SINCE_VERSION 1 - -/** @ingroup iface_zwp_primary_selection_device_manager_v1 */ -static inline void -zwp_primary_selection_device_manager_v1_set_user_data(struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_device_manager_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zwp_primary_selection_device_manager_v1, user_data); -} - -/** @ingroup iface_zwp_primary_selection_device_manager_v1 */ -static inline void * -zwp_primary_selection_device_manager_v1_get_user_data(struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_device_manager_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zwp_primary_selection_device_manager_v1); -} - -static inline uint32_t -zwp_primary_selection_device_manager_v1_get_version(struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_device_manager_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zwp_primary_selection_device_manager_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_device_manager_v1 - * - * Create a new primary selection source. - */ -static inline struct zwp_primary_selection_source_v1 * -zwp_primary_selection_device_manager_v1_create_source(struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_device_manager_v1) -{ - struct wl_proxy *id; - - id = wl_proxy_marshal_constructor((struct wl_proxy *) zwp_primary_selection_device_manager_v1, - ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_CREATE_SOURCE, &zwp_primary_selection_source_v1_interface, NULL); - - return (struct zwp_primary_selection_source_v1 *) id; -} - -/** - * @ingroup iface_zwp_primary_selection_device_manager_v1 - * - * Create a new data device for a given seat. - */ -static inline struct zwp_primary_selection_device_v1 * -zwp_primary_selection_device_manager_v1_get_device(struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_device_manager_v1, struct wl_seat *seat) -{ - struct wl_proxy *id; - - id = wl_proxy_marshal_constructor((struct wl_proxy *) zwp_primary_selection_device_manager_v1, - ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_GET_DEVICE, &zwp_primary_selection_device_v1_interface, NULL, seat); - - return (struct zwp_primary_selection_device_v1 *) id; -} - -/** - * @ingroup iface_zwp_primary_selection_device_manager_v1 - * - * Destroy the primary selection device manager. - */ -static inline void -zwp_primary_selection_device_manager_v1_destroy(struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_device_manager_v1) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_device_manager_v1, - ZWP_PRIMARY_SELECTION_DEVICE_MANAGER_V1_DESTROY); - - wl_proxy_destroy((struct wl_proxy *) zwp_primary_selection_device_manager_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_device_v1 - * @struct zwp_primary_selection_device_v1_listener - */ -struct zwp_primary_selection_device_v1_listener { - /** - * introduce a new wp_primary_selection_offer - * - * Introduces a new wp_primary_selection_offer object that may be - * used to receive the current primary selection. Immediately - * following this event, the new wp_primary_selection_offer object - * will send wp_primary_selection_offer.offer events to describe - * the offered mime types. - */ - void (*data_offer)(void *data, - struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1, - struct zwp_primary_selection_offer_v1 *offer); - /** - * advertise a new primary selection - * - * The wp_primary_selection_device.selection event is sent to - * notify the client of a new primary selection. This event is sent - * after the wp_primary_selection.data_offer event introducing this - * object, and after the offer has announced its mimetypes through - * wp_primary_selection_offer.offer. - * - * The data_offer is valid until a new offer or NULL is received or - * until the client loses keyboard focus. The client must destroy - * the previous selection data_offer, if any, upon receiving this - * event. - */ - void (*selection)(void *data, - struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1, - struct zwp_primary_selection_offer_v1 *id); -}; - -/** - * @ingroup iface_zwp_primary_selection_device_v1 - */ -static inline int -zwp_primary_selection_device_v1_add_listener(struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1, - const struct zwp_primary_selection_device_v1_listener *listener, void *data) -{ - return wl_proxy_add_listener((struct wl_proxy *) zwp_primary_selection_device_v1, - (void (**)(void)) listener, data); -} - -#define ZWP_PRIMARY_SELECTION_DEVICE_V1_SET_SELECTION 0 -#define ZWP_PRIMARY_SELECTION_DEVICE_V1_DESTROY 1 - -/** - * @ingroup iface_zwp_primary_selection_device_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_V1_DATA_OFFER_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_device_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_V1_SELECTION_SINCE_VERSION 1 - -/** - * @ingroup iface_zwp_primary_selection_device_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_V1_SET_SELECTION_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_device_v1 - */ -#define ZWP_PRIMARY_SELECTION_DEVICE_V1_DESTROY_SINCE_VERSION 1 - -/** @ingroup iface_zwp_primary_selection_device_v1 */ -static inline void -zwp_primary_selection_device_v1_set_user_data(struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zwp_primary_selection_device_v1, user_data); -} - -/** @ingroup iface_zwp_primary_selection_device_v1 */ -static inline void * -zwp_primary_selection_device_v1_get_user_data(struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zwp_primary_selection_device_v1); -} - -static inline uint32_t -zwp_primary_selection_device_v1_get_version(struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zwp_primary_selection_device_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_device_v1 - * - * Replaces the current selection. The previous owner of the primary - * selection will receive a wp_primary_selection_source.cancelled event. - * - * To unset the selection, set the source to NULL. - */ -static inline void -zwp_primary_selection_device_v1_set_selection(struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1, struct zwp_primary_selection_source_v1 *source, uint32_t serial) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_device_v1, - ZWP_PRIMARY_SELECTION_DEVICE_V1_SET_SELECTION, source, serial); -} - -/** - * @ingroup iface_zwp_primary_selection_device_v1 - * - * Destroy the primary selection device. - */ -static inline void -zwp_primary_selection_device_v1_destroy(struct zwp_primary_selection_device_v1 *zwp_primary_selection_device_v1) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_device_v1, - ZWP_PRIMARY_SELECTION_DEVICE_V1_DESTROY); - - wl_proxy_destroy((struct wl_proxy *) zwp_primary_selection_device_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - * @struct zwp_primary_selection_offer_v1_listener - */ -struct zwp_primary_selection_offer_v1_listener { - /** - * advertise offered mime type - * - * Sent immediately after creating announcing the - * wp_primary_selection_offer through - * wp_primary_selection_device.data_offer. One event is sent per - * offered mime type. - */ - void (*offer)(void *data, - struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1, - const char *mime_type); -}; - -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - */ -static inline int -zwp_primary_selection_offer_v1_add_listener(struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1, - const struct zwp_primary_selection_offer_v1_listener *listener, void *data) -{ - return wl_proxy_add_listener((struct wl_proxy *) zwp_primary_selection_offer_v1, - (void (**)(void)) listener, data); -} - -#define ZWP_PRIMARY_SELECTION_OFFER_V1_RECEIVE 0 -#define ZWP_PRIMARY_SELECTION_OFFER_V1_DESTROY 1 - -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - */ -#define ZWP_PRIMARY_SELECTION_OFFER_V1_OFFER_SINCE_VERSION 1 - -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - */ -#define ZWP_PRIMARY_SELECTION_OFFER_V1_RECEIVE_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - */ -#define ZWP_PRIMARY_SELECTION_OFFER_V1_DESTROY_SINCE_VERSION 1 - -/** @ingroup iface_zwp_primary_selection_offer_v1 */ -static inline void -zwp_primary_selection_offer_v1_set_user_data(struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zwp_primary_selection_offer_v1, user_data); -} - -/** @ingroup iface_zwp_primary_selection_offer_v1 */ -static inline void * -zwp_primary_selection_offer_v1_get_user_data(struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zwp_primary_selection_offer_v1); -} - -static inline uint32_t -zwp_primary_selection_offer_v1_get_version(struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zwp_primary_selection_offer_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - * - * To transfer the contents of the primary selection clipboard, the client - * issues this request and indicates the mime type that it wants to - * receive. The transfer happens through the passed file descriptor - * (typically created with the pipe system call). The source client writes - * the data in the mime type representation requested and then closes the - * file descriptor. - * - * The receiving client reads from the read end of the pipe until EOF and - * closes its end, at which point the transfer is complete. - */ -static inline void -zwp_primary_selection_offer_v1_receive(struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1, const char *mime_type, int32_t fd) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_offer_v1, - ZWP_PRIMARY_SELECTION_OFFER_V1_RECEIVE, mime_type, fd); -} - -/** - * @ingroup iface_zwp_primary_selection_offer_v1 - * - * Destroy the primary selection offer. - */ -static inline void -zwp_primary_selection_offer_v1_destroy(struct zwp_primary_selection_offer_v1 *zwp_primary_selection_offer_v1) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_offer_v1, - ZWP_PRIMARY_SELECTION_OFFER_V1_DESTROY); - - wl_proxy_destroy((struct wl_proxy *) zwp_primary_selection_offer_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_source_v1 - * @struct zwp_primary_selection_source_v1_listener - */ -struct zwp_primary_selection_source_v1_listener { - /** - * send the primary selection contents - * - * Request for the current primary selection contents from the - * client. Send the specified mime type over the passed file - * descriptor, then close it. - */ - void (*send)(void *data, - struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1, - const char *mime_type, - int32_t fd); - /** - * request for primary selection contents was canceled - * - * This primary selection source is no longer valid. The client - * should clean up and destroy this primary selection source. - */ - void (*cancelled)(void *data, - struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1); -}; - -/** - * @ingroup iface_zwp_primary_selection_source_v1 - */ -static inline int -zwp_primary_selection_source_v1_add_listener(struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1, - const struct zwp_primary_selection_source_v1_listener *listener, void *data) -{ - return wl_proxy_add_listener((struct wl_proxy *) zwp_primary_selection_source_v1, - (void (**)(void)) listener, data); -} - -#define ZWP_PRIMARY_SELECTION_SOURCE_V1_OFFER 0 -#define ZWP_PRIMARY_SELECTION_SOURCE_V1_DESTROY 1 - -/** - * @ingroup iface_zwp_primary_selection_source_v1 - */ -#define ZWP_PRIMARY_SELECTION_SOURCE_V1_SEND_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_source_v1 - */ -#define ZWP_PRIMARY_SELECTION_SOURCE_V1_CANCELLED_SINCE_VERSION 1 - -/** - * @ingroup iface_zwp_primary_selection_source_v1 - */ -#define ZWP_PRIMARY_SELECTION_SOURCE_V1_OFFER_SINCE_VERSION 1 -/** - * @ingroup iface_zwp_primary_selection_source_v1 - */ -#define ZWP_PRIMARY_SELECTION_SOURCE_V1_DESTROY_SINCE_VERSION 1 - -/** @ingroup iface_zwp_primary_selection_source_v1 */ -static inline void -zwp_primary_selection_source_v1_set_user_data(struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1, void *user_data) -{ - wl_proxy_set_user_data((struct wl_proxy *) zwp_primary_selection_source_v1, user_data); -} - -/** @ingroup iface_zwp_primary_selection_source_v1 */ -static inline void * -zwp_primary_selection_source_v1_get_user_data(struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1) -{ - return wl_proxy_get_user_data((struct wl_proxy *) zwp_primary_selection_source_v1); -} - -static inline uint32_t -zwp_primary_selection_source_v1_get_version(struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1) -{ - return wl_proxy_get_version((struct wl_proxy *) zwp_primary_selection_source_v1); -} - -/** - * @ingroup iface_zwp_primary_selection_source_v1 - * - * This request adds a mime type to the set of mime types advertised to - * targets. Can be called several times to offer multiple types. - */ -static inline void -zwp_primary_selection_source_v1_offer(struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1, const char *mime_type) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_source_v1, - ZWP_PRIMARY_SELECTION_SOURCE_V1_OFFER, mime_type); -} - -/** - * @ingroup iface_zwp_primary_selection_source_v1 - * - * Destroy the primary selection source. - */ -static inline void -zwp_primary_selection_source_v1_destroy(struct zwp_primary_selection_source_v1 *zwp_primary_selection_source_v1) -{ - wl_proxy_marshal((struct wl_proxy *) zwp_primary_selection_source_v1, - ZWP_PRIMARY_SELECTION_SOURCE_V1_DESTROY); - - wl_proxy_destroy((struct wl_proxy *) zwp_primary_selection_source_v1); -} - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/widget/gtk/wayland/primary-selection-unstable-v1-protocol.c b/widget/gtk/wayland/primary-selection-unstable-v1-protocol.c deleted file mode 100644 index 80b5264f39e2..000000000000 --- a/widget/gtk/wayland/primary-selection-unstable-v1-protocol.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Generated by wayland-scanner 1.18.0 */ - -/* - * Copyright © 2015, 2016 Red Hat - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice (including the next - * paragraph) shall be included in all copies or substantial portions of the - * Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -#include -#include -#include -#include "wayland-util.h" - -#ifndef __has_attribute -# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ -#endif - -#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4) -#define WL_PRIVATE __attribute__ ((visibility("hidden"))) -#else -#define WL_PRIVATE -#endif - -extern const struct wl_interface wl_seat_interface; -extern const struct wl_interface zwp_primary_selection_device_v1_interface; -extern const struct wl_interface zwp_primary_selection_offer_v1_interface; -extern const struct wl_interface zwp_primary_selection_source_v1_interface; - -static const struct wl_interface *wp_primary_selection_unstable_v1_types[] = { - NULL, - NULL, - &zwp_primary_selection_source_v1_interface, - &zwp_primary_selection_device_v1_interface, - &wl_seat_interface, - &zwp_primary_selection_source_v1_interface, - NULL, - &zwp_primary_selection_offer_v1_interface, - &zwp_primary_selection_offer_v1_interface, -}; - -static const struct wl_message zwp_primary_selection_device_manager_v1_requests[] = { - { "create_source", "n", wp_primary_selection_unstable_v1_types + 2 }, - { "get_device", "no", wp_primary_selection_unstable_v1_types + 3 }, - { "destroy", "", wp_primary_selection_unstable_v1_types + 0 }, -}; - -WL_PRIVATE const struct wl_interface zwp_primary_selection_device_manager_v1_interface = { - "zwp_primary_selection_device_manager_v1", 1, - 3, zwp_primary_selection_device_manager_v1_requests, - 0, NULL, -}; - -static const struct wl_message zwp_primary_selection_device_v1_requests[] = { - { "set_selection", "?ou", wp_primary_selection_unstable_v1_types + 5 }, - { "destroy", "", wp_primary_selection_unstable_v1_types + 0 }, -}; - -static const struct wl_message zwp_primary_selection_device_v1_events[] = { - { "data_offer", "n", wp_primary_selection_unstable_v1_types + 7 }, - { "selection", "?o", wp_primary_selection_unstable_v1_types + 8 }, -}; - -WL_PRIVATE const struct wl_interface zwp_primary_selection_device_v1_interface = { - "zwp_primary_selection_device_v1", 1, - 2, zwp_primary_selection_device_v1_requests, - 2, zwp_primary_selection_device_v1_events, -}; - -static const struct wl_message zwp_primary_selection_offer_v1_requests[] = { - { "receive", "sh", wp_primary_selection_unstable_v1_types + 0 }, - { "destroy", "", wp_primary_selection_unstable_v1_types + 0 }, -}; - -static const struct wl_message zwp_primary_selection_offer_v1_events[] = { - { "offer", "s", wp_primary_selection_unstable_v1_types + 0 }, -}; - -WL_PRIVATE const struct wl_interface zwp_primary_selection_offer_v1_interface = { - "zwp_primary_selection_offer_v1", 1, - 2, zwp_primary_selection_offer_v1_requests, - 1, zwp_primary_selection_offer_v1_events, -}; - -static const struct wl_message zwp_primary_selection_source_v1_requests[] = { - { "offer", "s", wp_primary_selection_unstable_v1_types + 0 }, - { "destroy", "", wp_primary_selection_unstable_v1_types + 0 }, -}; - -static const struct wl_message zwp_primary_selection_source_v1_events[] = { - { "send", "sh", wp_primary_selection_unstable_v1_types + 0 }, - { "cancelled", "", wp_primary_selection_unstable_v1_types + 0 }, -}; - -WL_PRIVATE const struct wl_interface zwp_primary_selection_source_v1_interface = { - "zwp_primary_selection_source_v1", 1, - 2, zwp_primary_selection_source_v1_requests, - 2, zwp_primary_selection_source_v1_events, -}; -