summaryrefslogtreecommitdiff
path: root/mozilla-1631061.patch
diff options
context:
space:
mode:
authorMartin Stransky <stransky@redhat.com>2021-01-30 14:55:47 +0100
committerMartin Stransky <stransky@redhat.com>2021-01-30 14:55:47 +0100
commitcee1091026bfdfae59e882462c3deee1c2860896 (patch)
treef73fff7658653403bd3575c3c84e693b0fadda0d /mozilla-1631061.patch
parentAdd dbus-glib requires (diff)
downloadlibrewolf-fedora-ff-cee1091026bfdfae59e882462c3deee1c2860896.tar.gz
librewolf-fedora-ff-cee1091026bfdfae59e882462c3deee1c2860896.tar.bz2
librewolf-fedora-ff-cee1091026bfdfae59e882462c3deee1c2860896.zip
Added clipboard fix mozbz#1631061.
Diffstat (limited to 'mozilla-1631061.patch')
-rw-r--r--mozilla-1631061.patch158
1 files changed, 0 insertions, 158 deletions
diff --git a/mozilla-1631061.patch b/mozilla-1631061.patch
deleted file mode 100644
index acd1c5a..0000000
--- a/mozilla-1631061.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-changeset: 563258:ed4b271af277
-tag: tip
-parent: 563255:2c9db4cd3d89
-user: stransky <stransky@redhat.com>
-date: Tue Dec 22 11:03:28 2020 +0100
-files: widget/gtk/nsClipboardWayland.cpp widget/gtk/nsClipboardWayland.h
-description:
-Bug 1631061 [Wayland] Remove fast track clipboard and always ask compositor for clipboard data, r?rmader
-
-Differential Revision: https://phabricator.services.mozilla.com/D100317
-
-
-diff --git a/widget/gtk/nsClipboardWayland.cpp b/widget/gtk/nsClipboardWayland.cpp
---- a/widget/gtk/nsClipboardWayland.cpp
-+++ b/widget/gtk/nsClipboardWayland.cpp
-@@ -749,7 +749,6 @@ nsRetrievalContextWayland::nsRetrievalCo
- mClipboardOffer(nullptr),
- mPrimaryOffer(nullptr),
- mDragContext(nullptr),
-- mClipboardRequestNumber(0),
- mClipboardData(nullptr),
- mClipboardDataLength(0) {
- wl_data_device* dataDevice = wl_data_device_manager_get_data_device(
-@@ -807,42 +806,6 @@ GdkAtom* nsRetrievalContextWayland::GetT
- return nullptr;
- }
-
--struct FastTrackClipboard {
-- FastTrackClipboard(int aClipboardRequestNumber,
-- nsRetrievalContextWayland* aRetrievalContex)
-- : mClipboardRequestNumber(aClipboardRequestNumber),
-- mRetrievalContex(aRetrievalContex) {}
--
-- int mClipboardRequestNumber;
-- nsRetrievalContextWayland* mRetrievalContex;
--};
--
--static void wayland_clipboard_contents_received(
-- GtkClipboard* clipboard, GtkSelectionData* selection_data, gpointer data) {
-- LOGCLIP(("wayland_clipboard_contents_received() callback\n"));
-- FastTrackClipboard* fastTrack = static_cast<FastTrackClipboard*>(data);
-- fastTrack->mRetrievalContex->TransferFastTrackClipboard(
-- fastTrack->mClipboardRequestNumber, selection_data);
-- delete fastTrack;
--}
--
--void nsRetrievalContextWayland::TransferFastTrackClipboard(
-- int aClipboardRequestNumber, GtkSelectionData* aSelectionData) {
-- if (mClipboardRequestNumber == aClipboardRequestNumber) {
-- int dataLength = gtk_selection_data_get_length(aSelectionData);
-- if (dataLength > 0) {
-- mClipboardDataLength = dataLength;
-- mClipboardData = reinterpret_cast<char*>(
-- g_malloc(sizeof(char) * (mClipboardDataLength + 1)));
-- memcpy(mClipboardData, gtk_selection_data_get_data(aSelectionData),
-- sizeof(char) * mClipboardDataLength);
-- mClipboardData[mClipboardDataLength] = '\0';
-- }
-- } else {
-- NS_WARNING("Received obsoleted clipboard data!");
-- }
--}
--
- const char* nsRetrievalContextWayland::GetClipboardData(
- const char* aMimeType, int32_t aWhichClipboard, uint32_t* aContentLength) {
- NS_ASSERTION(mClipboardData == nullptr && mClipboardDataLength == 0,
-@@ -851,33 +814,20 @@ const char* nsRetrievalContextWayland::G
- LOGCLIP(("nsRetrievalContextWayland::GetClipboardData [%p] mime %s\n", this,
- aMimeType));
-
-- /* If actual clipboard data is owned by us we don't need to go
-- * through Wayland but we ask Gtk+ to directly call data
-- * getter callback nsClipboard::SelectionGetEvent().
-- * see gtk_selection_convert() at gtk+/gtkselection.c.
-- */
-- GdkAtom selection = GetSelectionAtom(aWhichClipboard);
-- if (gdk_selection_owner_get(selection)) {
-- LOGCLIP((" Internal clipboard content\n"));
-- mClipboardRequestNumber++;
-- gtk_clipboard_request_contents(
-- gtk_clipboard_get(selection), gdk_atom_intern(aMimeType, FALSE),
-- wayland_clipboard_contents_received,
-- new FastTrackClipboard(mClipboardRequestNumber, this));
-+ const auto& dataOffer =
-+ (GetSelectionAtom(aWhichClipboard) == GDK_SELECTION_PRIMARY)
-+ ? mPrimaryOffer
-+ : mClipboardOffer;
-+ if (!dataOffer) {
-+ // Something went wrong. We're requested to provide clipboard data
-+ // but we haven't got any from wayland.
-+ NS_WARNING("Requested data without valid DataOffer!");
-+ if (mClipboardData) {
-+ ReleaseClipboardData(mClipboardData);
-+ }
- } else {
-- LOGCLIP((" Remote clipboard content\n"));
-- const auto& dataOffer =
-- (selection == GDK_SELECTION_PRIMARY) ? mPrimaryOffer : mClipboardOffer;
-- if (!dataOffer) {
-- // Something went wrong. We're requested to provide clipboard data
-- // but we haven't got any from wayland.
-- NS_WARNING("Requested data without valid DataOffer!");
-- mClipboardData = nullptr;
-- mClipboardDataLength = 0;
-- } else {
-- mClipboardData = dataOffer->GetData(mDisplay->GetDisplay(), aMimeType,
-- &mClipboardDataLength);
-- }
-+ mClipboardData = dataOffer->GetData(mDisplay->GetDisplay(), aMimeType,
-+ &mClipboardDataLength);
- }
-
- *aContentLength = mClipboardDataLength;
-@@ -908,8 +858,10 @@ void nsRetrievalContextWayland::ReleaseC
-
- NS_ASSERTION(aClipboardData == mClipboardData,
- "Releasing unknown clipboard data!");
-- g_free((void*)aClipboardData);
-
-- mClipboardData = nullptr;
-- mClipboardDataLength = 0;
-+ if (mClipboardData) {
-+ g_free((void*)aClipboardData);
-+ mClipboardData = nullptr;
-+ mClipboardDataLength = 0;
-+ }
- }
-diff --git a/widget/gtk/nsClipboardWayland.h b/widget/gtk/nsClipboardWayland.h
---- a/widget/gtk/nsClipboardWayland.h
-+++ b/widget/gtk/nsClipboardWayland.h
-@@ -16,8 +16,6 @@
- #include "nsClipboard.h"
- #include "nsWaylandDisplay.h"
-
--struct FastTrackClipboard;
--
- class DataOffer {
- public:
- void AddMIMEType(const char* aMimeType);
-@@ -134,9 +132,6 @@ class nsRetrievalContextWayland : public
-
- void ClearDragAndDropDataOffer();
-
-- void TransferFastTrackClipboard(int aClipboardRequestNumber,
-- GtkSelectionData* aSelectionData);
--
- virtual ~nsRetrievalContextWayland() override;
-
- private:
-@@ -149,7 +144,6 @@ class nsRetrievalContextWayland : public
- mozilla::UniquePtr<DataOffer> mPrimaryOffer;
- RefPtr<nsWaylandDragContext> mDragContext;
-
-- int mClipboardRequestNumber;
- char* mClipboardData;
- uint32_t mClipboardDataLength;
-
-
bgstack15