Bug 1417890 - Use nsRetrievalContextWayland for Wayland displays, r?jhorak draft
authorMartin Stransky <stransky@redhat.com>
Mon, 18 Dec 2017 13:37:46 +0100
changeset 715678 a27dbd80addba32035d5537269356d8a6e7a15af
parent 715677 dbbb0bce99c7a801c02a07071d0f2e91fa272c73
child 715679 e52aafd79f55bbeeeb178582dcab1cce22ca49a6
push id94226
push userstransky@redhat.com
push dateThu, 04 Jan 2018 11:44:20 +0000
reviewersjhorak
bugs1417890
milestone59.0a1
Bug 1417890 - Use nsRetrievalContextWayland for Wayland displays, r?jhorak MozReview-Commit-ID: 1Z7uUhHPnaq
widget/gtk/nsClipboard.cpp
widget/gtk/nsClipboardWayland.h
widget/gtk/nsClipboardX11.h
--- 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();