[empathy: 2/4] DnD: add a new text/path-list target in chat window
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy: 2/4] DnD: add a new text/path-list target in chat window
- Date: Mon, 15 Mar 2010 17:03:44 +0000 (UTC)
commit c7085dce8076c1e98049adc7dbcb593b16ac5df8
Author: Olivier Le Thanh Duong <olivier lethanh be>
Date: Fri Mar 5 00:45:01 2010 +0100
DnD: add a new text/path-list target in chat window
add a new text/path-list drop target to the chat window, it act like
the text/uri-list target but is prioritized over it. This is mainly to
circumvent Tomboy returning note:// uri in its uri-list.
src/empathy-chat-window.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c
index 8a5d503..7419a72 100644
--- a/src/empathy-chat-window.c
+++ b/src/empathy-chat-window.c
@@ -119,6 +119,7 @@ static const GtkTargetEntry drag_types_dest[] = {
{ "text/contact-id", 0, DND_DRAG_TYPE_CONTACT_ID },
{ "GTK_NOTEBOOK_TAB", GTK_TARGET_SAME_APP, DND_DRAG_TYPE_TAB },
{ "text/uri-list", 0, DND_DRAG_TYPE_URI_LIST },
+ { "text/path-list", 0, DND_DRAG_TYPE_URI_LIST },
};
static const GtkTargetEntry drag_types_dest_contact[] = {
@@ -126,6 +127,9 @@ static const GtkTargetEntry drag_types_dest_contact[] = {
};
static const GtkTargetEntry drag_types_dest_file[] = {
+ /* must be first to be prioritized, in order to receive the
+ * note's file path from Tomboy instead of an URI */
+ { "text/path-list", 0, DND_DRAG_TYPE_URI_LIST },
{ "text/uri-list", 0, DND_DRAG_TYPE_URI_LIST },
};
@@ -1537,15 +1541,18 @@ chat_window_drag_drop (GtkWidget *widget,
int x,
int y,
guint time_,
- gpointer user_data)
+ EmpathyChatWindow *window)
{
- GdkAtom target, uri_target, contact_target;
+ GdkAtom target;
+ EmpathyChatWindowPriv *priv;
- target = gtk_drag_dest_find_target (widget, context, NULL);
- uri_target = gdk_atom_intern_static_string ("text/uri-list");
- contact_target = gdk_atom_intern_static_string ("text/contact-id");
+ priv = GET_PRIV (window);
- if (target == uri_target || target == contact_target) {
+ target = gtk_drag_dest_find_target (widget, context, priv->file_targets);
+ if (target == GDK_NONE)
+ target = gtk_drag_dest_find_target (widget, context, priv->contact_targets);
+
+ if (target != GDK_NONE) {
gtk_drag_get_data (widget, context, target, time_);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]