droptarget: Remove selectiondata read functions

They are unused now.
This commit is contained in:
Benjamin Otte 2020-02-22 17:36:58 +01:00
parent a19066b17c
commit a4f7e2ca09
3 changed files with 1 additions and 160 deletions

View File

@ -6893,8 +6893,6 @@ gtk_drop_target_set_actions
gtk_drop_target_get_actions
gtk_drop_target_get_drop
gtk_drop_target_find_mimetype
gtk_drop_target_read_selection
gtk_drop_target_read_selection_finish
gtk_drag_highlight
gtk_drag_unhighlight

View File

@ -32,7 +32,6 @@
#include "gtktypebuiltins.h"
#include "gtkeventcontrollerprivate.h"
#include "gtkmarshalers.h"
#include "gtkselectionprivate.h"
/**
@ -365,7 +364,7 @@ gtk_drop_target_class_init (GtkDropTargetClass *class)
*
* To receive the data, use one of the read functions provides by #GtkDrop
* and #GtkDragDest: gdk_drop_read_async(), gdk_drop_read_value_async(),
* gdk_drop_read_text_async(), gtk_drop_target_read_selection().
* gdk_drop_read_text_async().
*
* You can use gtk_drop_target_get_drop() to obtain the #GtkDrop object
* for the ongoing operation in your signal handler. If you call one of the
@ -814,149 +813,6 @@ gtk_drag_dest_handle_event (GtkWidget *toplevel,
}
}
static void
gtk_drag_get_data_got_data (GObject *source,
GAsyncResult *result,
gpointer data)
{
GTask *task = data;
gssize written;
GError *error = NULL;
guchar *bytes;
gsize size;
GtkSelectionData *sdata;
GtkDropTarget *dest;
GdkDrop *drop;
GdkDisplay *display;
written = g_output_stream_splice_finish (G_OUTPUT_STREAM (source), result, &error);
if (written < 0)
{
g_task_return_error (task, error);
g_object_unref (task);
return;
}
bytes = g_memory_output_stream_steal_data (G_MEMORY_OUTPUT_STREAM (source));
size = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (source));
dest = GTK_DROP_TARGET (g_task_get_source_object (task));
drop = GDK_DROP (g_object_get_data (G_OBJECT (task), "drop"));
display = GDK_DISPLAY (g_object_get_data (G_OBJECT (task), "display"));
sdata = g_slice_new0 (GtkSelectionData);
sdata->target = g_task_get_task_data (task);
sdata->type = g_task_get_task_data (task);
sdata->format = 8;
sdata->length = size;
sdata->data = bytes ? bytes : (guchar *)g_strdup ("");
sdata->display = display;
set_drop (dest, drop);
g_task_return_pointer (task, sdata, NULL);
set_drop (dest, NULL);
g_object_unref (task);
}
static void
gtk_drag_get_data_got_stream (GObject *source,
GAsyncResult *result,
gpointer data)
{
GTask *task = data;
GInputStream *input_stream;
GOutputStream *output_stream;
GError *error = NULL;
const char *mime_type;
input_stream = gdk_drop_read_finish (GDK_DROP (source), result, &mime_type, &error);
if (input_stream == NULL)
{
g_task_return_error (task, error);
g_object_unref (task);
return;
}
g_task_set_task_data (task, (gpointer)g_intern_string (mime_type), NULL);
output_stream = g_memory_output_stream_new_resizable ();
g_output_stream_splice_async (output_stream,
input_stream,
G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET,
G_PRIORITY_DEFAULT,
NULL,
gtk_drag_get_data_got_data,
task);
g_object_unref (output_stream);
g_object_unref (input_stream);
}
/**
* gtk_drop_target_read_selection:
* @dest: a #GtkDropTarget
* @target: the data format to read
* @cancellable: (nullable): a cancellable
* @callback: callback to call on completion
* @user_data: data to pass to @callback
*
* Asynchronously reads the dropped data from an ongoing
* drag on a #GtkDropTarget, and returns the data in a
* #GtkSelectionData object.
*
* This function is meant for cases where a #GtkSelectionData
* object is needed, such as when using the #GtkTreeModel DND
* support. In most other cases, the #GdkDrop async read
* APIs that return in input stream or #GValue are more
* convenient and should be preferred.
*/
void
gtk_drop_target_read_selection (GtkDropTarget *dest,
GdkAtom target,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
GTask *task;
GtkWidget *widget;
g_return_if_fail (GTK_IS_DROP_TARGET (dest));
task = g_task_new (dest, NULL, callback, user_data);
g_object_set_data_full (G_OBJECT (task), "drop", g_object_ref (dest->drop), g_object_unref);
widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (dest));
if (widget)
g_object_set_data (G_OBJECT (task), "display", gtk_widget_get_display (widget));
gdk_drop_read_async (dest->drop,
(const char *[2]) { target, NULL },
G_PRIORITY_DEFAULT,
NULL,
gtk_drag_get_data_got_stream,
task);
}
/**
* gtk_drop_target_read_selection_finish:
* @dest: a #GtkDropTarget
* @result: a #GAsyncResult
* @error: (allow-none): location to store error information on failure, or %NULL
*
* Finishes an async drop read operation, see gtk_drop_target_read_selection().
*
* Returns: (nullable) (transfer full): the #GtkSelectionData, or %NULL
*/
GtkSelectionData *
gtk_drop_target_read_selection_finish (GtkDropTarget *dest,
GAsyncResult *result,
GError **error)
{
g_return_val_if_fail (GTK_IS_DROP_TARGET (dest), NULL);
return g_task_propagate_pointer (G_TASK (result), error);
}
static GtkDropStatus
gtk_drop_target_get_drop_status (GtkDropTarget *dest,
GdkDrop *drop)

View File

@ -31,7 +31,6 @@
#error "Only <gtk/gtk.h> can be included directly."
#endif
#include <gtk/gtkselection.h>
#include <gtk/gtkwidget.h>
@ -74,18 +73,6 @@ GdkDrop *gtk_drop_target_get_drop (GtkDropTarget *dest);
GDK_AVAILABLE_IN_ALL
const char *gtk_drop_target_find_mimetype (GtkDropTarget *dest);
GDK_AVAILABLE_IN_ALL
void gtk_drop_target_read_selection (GtkDropTarget *dest,
GdkAtom target,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
GDK_AVAILABLE_IN_ALL
GtkSelectionData *gtk_drop_target_read_selection_finish
(GtkDropTarget *dest,
GAsyncResult *result,
GError **error);
GDK_AVAILABLE_IN_ALL
void gtk_drop_target_deny_drop (GtkDropTarget *dest,
GdkDrop *drop);