aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2003-03-27 11:47:24 +0800
committerChris Toshok <toshok@src.gnome.org>2003-03-27 11:47:24 +0800
commitf6623221aeb0607c698d6c377dc6659dec86440e (patch)
tree017e57aef0d3002064f630cb268ba01819c256b9 /addressbook/gui
parentc1c85074dd0171c266c6e12a4247593bb66e54a0 (diff)
downloadgsoc2013-evolution-f6623221aeb0607c698d6c377dc6659dec86440e.tar.gz
gsoc2013-evolution-f6623221aeb0607c698d6c377dc6659dec86440e.tar.zst
gsoc2013-evolution-f6623221aeb0607c698d6c377dc6659dec86440e.zip
[ fixes bug #34085 ] only successfully complete the drag if they dropped a
2003-03-26 Chris Toshok <toshok@ximian.com> [ fixes bug #34085 ] * gui/contact-list-editor/e-contact-list-editor.c (table_drag_data_received_cb): only successfully complete the drag if they dropped a valid vcard (or vcard list). Call gtk_drag_finish. svn path=/trunk/; revision=20539
Diffstat (limited to 'addressbook/gui')
-rw-r--r--addressbook/gui/contact-list-editor/e-contact-list-editor.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
index ecb63b2e2a..754048c2a5 100644
--- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c
+++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
@@ -839,14 +839,14 @@ table_drag_drop_cb (ETable *table, int row, int col,
GdkDragContext *context,
gint x, gint y, guint time, EContactListEditor *editor)
{
- if (context->targets != NULL) {
- gtk_drag_get_data (GTK_WIDGET (table), context,
- GDK_POINTER_TO_ATOM (context->targets->data),
- time);
- return TRUE;
- }
+ if (context->targets == NULL)
+ return FALSE;
- return FALSE;
+
+ gtk_drag_get_data (GTK_WIDGET (table), context,
+ GDK_POINTER_TO_ATOM (context->targets->data),
+ time);
+ return TRUE;
}
static void
@@ -859,6 +859,7 @@ table_drag_data_received_cb (ETable *table, int row, int col,
GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (editor->table));
char *target_type;
gboolean changed = FALSE;
+ gboolean handled = FALSE;
target_type = gdk_atom_name (selection_data->target);
@@ -867,6 +868,9 @@ table_drag_data_received_cb (ETable *table, int row, int col,
GList *card_list = e_card_load_cards_from_string_with_default_charset (selection_data->data, "ISO-8859-1");
GList *c;
+ if (card_list)
+ handled = TRUE;
+
for (c = card_list; c; c = c->next) {
ECard *ecard = c->data;
@@ -887,12 +891,14 @@ table_drag_data_received_cb (ETable *table, int row, int col,
/* Skip to the end of the list */
if (adj->upper - adj->lower > adj->page_size)
gtk_adjustment_set_value (adj, adj->upper);
- }
- if (changed) {
- editor->changed = TRUE;
- command_state_changed (editor);
+ if (changed) {
+ editor->changed = TRUE;
+ command_state_changed (editor);
+ }
}
+
+ gtk_drag_finish (context, handled, FALSE, time);
}
static void