summaryrefslogtreecommitdiff
path: root/mozilla-1434572.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1434572.patch')
-rw-r--r--mozilla-1434572.patch93
1 files changed, 0 insertions, 93 deletions
diff --git a/mozilla-1434572.patch b/mozilla-1434572.patch
deleted file mode 100644
index 835c76f..0000000
--- a/mozilla-1434572.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
---- a/widget/gtk/mozgtk/mozgtk.c
-+++ b/widget/gtk/mozgtk/mozgtk.c
-@@ -66,16 +66,17 @@ STUB(gdk_screen_get_number)
- STUB(gdk_screen_get_resolution)
- STUB(gdk_screen_get_rgba_visual)
- STUB(gdk_screen_get_root_window)
- STUB(gdk_screen_get_system_visual)
- STUB(gdk_screen_get_width)
- STUB(gdk_screen_height)
- STUB(gdk_screen_is_composited)
- STUB(gdk_screen_width)
-+STUB(gdk_selection_owner_get)
- STUB(gdk_set_program_class)
- STUB(gdk_unicode_to_keyval)
- STUB(gdk_visual_get_depth)
- STUB(gdk_visual_get_system)
- STUB(gdk_window_add_filter)
- STUB(gdk_window_begin_move_drag)
- STUB(gdk_window_begin_resize_drag)
- STUB(gdk_window_destroy)
-diff --git a/widget/gtk/nsClipboardWayland.cpp b/widget/gtk/nsClipboardWayland.cpp
---- a/widget/gtk/nsClipboardWayland.cpp
-+++ b/widget/gtk/nsClipboardWayland.cpp
-@@ -337,21 +346,68 @@ nsRetrievalContextWayland::GetTargets(in
- for (int32_t j = 0; j < length; j++) {
- targetList[j] = mTargetMIMETypes[j];
- }
-
- *aTargetNum = length;
- return targetList;
- }
-
-+struct fastTrackClipboardData
-+{
-+ char* data;
-+ int dataLength;
-+};
-+
-+static void
-+wayland_clipboard_contents_received(GtkClipboard *clipboard,
-+ GtkSelectionData *selection_data,
-+ gpointer data)
-+{
-+ fastTrackClipboardData* clipboardData =
-+ static_cast<fastTrackClipboardData*>(data);
-+
-+ int contentLength = gtk_selection_data_get_length(selection_data);
-+ if (contentLength > 0) {
-+ clipboardData->data = reinterpret_cast<char*>(
-+ g_malloc(sizeof(char)*contentLength));
-+ memcpy(clipboardData->data,
-+ gtk_selection_data_get_data(selection_data),
-+ sizeof(char)*contentLength);
-+ }
-+
-+ clipboardData->dataLength = contentLength;
-+}
-+
- const char*
- nsRetrievalContextWayland::GetClipboardData(const char* aMimeType,
- int32_t aWhichClipboard,
- uint32_t* aContentLength)
- {
-+ /* 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().
-+ */
-+ GdkAtom selection = GetSelectionAtom(aWhichClipboard);
-+ if (gdk_selection_owner_get(selection)) {
-+ fastTrackClipboardData clipboardData = { nullptr, 0 };
-+ gtk_clipboard_request_contents(gtk_clipboard_get(selection),
-+ gdk_atom_intern(aMimeType, FALSE),
-+ wayland_clipboard_contents_received,
-+ &clipboardData);
-+ *aContentLength = clipboardData.dataLength;
-+ return static_cast<const char*>(clipboardData.data);
-+ }
-+
-+ /* TODO: We need to implement GDK_SELECTION_PRIMARY (X11 text selection)
-+ * for Wayland backend.
-+ */
-+ if (selection == GDK_SELECTION_PRIMARY)
-+ return nullptr;
-+
- NS_ASSERTION(mDataOffer, "Requested data without valid data offer!");
-
- if (!mDataOffer) {
- // TODO
- // Something went wrong. We're requested to provide clipboard data
- // but we haven't got any from wayland. Looks like rhbz#1455915.
- return nullptr;
- }
bgstack15