Bug 1417890 - Use nsRetrievalContextWayland for Wayland displays, r?jhorak
MozReview-Commit-ID: 1Z7uUhHPnaq
--- a/widget/gtk/nsClipboard.cpp
+++ b/widget/gtk/nsClipboard.cpp
@@ -5,16 +5,19 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/ArrayUtils.h"
#include "nsArrayUtils.h"
#include "nsClipboard.h"
#include "nsClipboardX11.h"
+#if defined(MOZ_WAYLAND)
+#include "nsClipboardWayland.h"
+#endif
#include "HeadlessClipboard.h"
#include "nsSupportsPrimitives.h"
#include "nsString.h"
#include "nsReadableUtils.h"
#include "nsPrimitiveHelpers.h"
#include "nsIServiceManager.h"
#include "nsImageToPixbuf.h"
#include "nsStringStream.h"
@@ -90,16 +93,20 @@ nsClipboard::~nsClipboard()
NS_IMPL_ISUPPORTS(nsClipboard, nsIClipboard)
nsresult
nsClipboard::Init(void)
{
// create nsRetrievalContext
if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
mContext = new nsRetrievalContextX11();
+#if defined(MOZ_WAYLAND)
+ } else {
+ mContext = new nsRetrievalContextWayland();
+#endif
}
return NS_OK;
}
nsresult
nsClipboard::Store(void)
{
--- a/widget/gtk/nsClipboardWayland.h
+++ b/widget/gtk/nsClipboardWayland.h
@@ -16,17 +16,17 @@
class nsRetrievalContextWayland : public nsRetrievalContext
{
public:
nsRetrievalContextWayland();
virtual const char* GetClipboardData(const char* aMimeType,
int32_t aWhichClipboard,
uint32_t* aContentLength) override;
- virtual void ReleaseClipboardData(const char* aClipboardData);
+ virtual void ReleaseClipboardData(const char* aClipboardData) override;
virtual GdkAtom* GetTargets(int32_t aWhichClipboard,
int* aTargetNum) override;
void SetDataOffer(wl_data_offer *aDataOffer);
void AddMIMEType(const char *aMimeType);
void ResetMIMETypeList(void);
void ConfigureKeyboard(wl_seat_capability caps);
--- a/widget/gtk/nsClipboardX11.h
+++ b/widget/gtk/nsClipboardX11.h
@@ -14,17 +14,17 @@
class nsRetrievalContextX11 : public nsRetrievalContext
{
public:
enum State { INITIAL, COMPLETED, TIMED_OUT };
virtual const char* GetClipboardData(const char* aMimeType,
int32_t aWhichClipboard,
uint32_t* aContentLength) override;
- virtual void ReleaseClipboardData(const char* aClipboardData);
+ virtual void ReleaseClipboardData(const char* aClipboardData) override;
virtual GdkAtom* GetTargets(int32_t aWhichClipboard,
int* aTargetNums) override;
// Call this when data has been retrieved.
void Complete(GtkSelectionData* aData, int aDataRequestNumber);
nsRetrievalContextX11();