From 7bc5628bbfa7b01dbbdda2c147a81e6edd59bf39 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Tue, 10 Jun 2008 12:33:22 +0000 Subject: [PATCH] Make gtk_tree_view_enable_model_drag_[source|dest] compatible with * gtk/gtktreeview.c: (destroy_info), (set_destination_row), (gtk_tree_view_maybe_begin_dragging_row), (gtk_tree_view_set_reorderable), (gtk_tree_view_enable_model_drag_source), (gtk_tree_view_enable_model_drag_dest), (gtk_tree_view_unset_rows_drag_source), (gtk_tree_view_unset_rows_drag_dest): Make gtk_tree_view_enable_model_drag_[source|dest] compatible with gtk_drag_[source|dest]_add_*_targets. Bug #506853. svn path=/trunk/; revision=20349 --- ChangeLog | 12 +++++++++++ gtk/gtktreeview.c | 53 +++++++++++------------------------------------ 2 files changed, 24 insertions(+), 41 deletions(-) diff --git a/ChangeLog b/ChangeLog index be1645d8c6..f49851e12a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2008-06-10 Christian Persch + + * gtk/gtktreeview.c: (destroy_info), (set_destination_row), + (gtk_tree_view_maybe_begin_dragging_row), + (gtk_tree_view_set_reorderable), + (gtk_tree_view_enable_model_drag_source), + (gtk_tree_view_enable_model_drag_dest), + (gtk_tree_view_unset_rows_drag_source), + (gtk_tree_view_unset_rows_drag_dest): Make + gtk_tree_view_enable_model_drag_[source|dest] compatible with + gtk_drag_[source|dest]_add_*_targets. Bug #506853. + 2008-06-10 Christian Persch * gtk/gtktreeview.c: (gtk_tree_view_button_release_drag_column), diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 469906528e..f2deab2320 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -92,10 +92,10 @@ typedef struct _TreeViewDragInfo TreeViewDragInfo; struct _TreeViewDragInfo { GdkModifierType start_button_mask; - GtkTargetList *source_target_list; + GtkTargetList *_unused_source_target_list; GdkDragAction source_actions; - GtkTargetList *dest_target_list; + GtkTargetList *_unused_dest_target_list; guint source_set : 1; guint dest_set : 1; @@ -6538,29 +6538,9 @@ get_info (GtkTreeView *tree_view) return g_object_get_data (G_OBJECT (tree_view), "gtk-tree-view-drag-info"); } -static void -clear_source_info (TreeViewDragInfo *di) -{ - if (di->source_target_list) - gtk_target_list_unref (di->source_target_list); - - di->source_target_list = NULL; -} - -static void -clear_dest_info (TreeViewDragInfo *di) -{ - if (di->dest_target_list) - gtk_target_list_unref (di->dest_target_list); - - di->dest_target_list = NULL; -} - static void destroy_info (TreeViewDragInfo *di) { - clear_source_info (di); - clear_dest_info (di); g_slice_free (TreeViewDragInfo, di); } @@ -6783,7 +6763,8 @@ set_destination_row (GtkTreeView *tree_view, return FALSE; /* no longer a drop site */ } - *target = gtk_drag_dest_find_target (widget, context, di->dest_target_list); + *target = gtk_drag_dest_find_target (widget, context, + gtk_drag_dest_get_target_list (widget)); if (*target == GDK_NONE) { return FALSE; @@ -6932,6 +6913,7 @@ static gboolean gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view, GdkEventMotion *event) { + GtkWidget *widget = GTK_WIDGET (tree_view); GdkDragContext *context; TreeViewDragInfo *di; GtkTreePath *path = NULL; @@ -6948,7 +6930,7 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view, if (tree_view->priv->pressed_button < 0) goto out; - if (!gtk_drag_check_threshold (GTK_WIDGET (tree_view), + if (!gtk_drag_check_threshold (widget, tree_view->priv->press_start_x, tree_view->priv->press_start_y, event->x, event->y)) @@ -6985,8 +6967,8 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view, retval = TRUE; - context = gtk_drag_begin (GTK_WIDGET (tree_view), - di->source_target_list, + context = gtk_drag_begin (widget, + gtk_drag_source_get_target_list (widget), di->source_actions, button, (GdkEvent*)event); @@ -12384,11 +12366,6 @@ gtk_tree_view_row_expanded (GtkTreeView *tree_view, return (node->children != NULL); } -static const GtkTargetEntry row_targets[] = { - { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 } -}; - - /** * gtk_tree_view_get_reorderable: * @tree_view: a #GtkTreeView @@ -12435,6 +12412,10 @@ gtk_tree_view_set_reorderable (GtkTreeView *tree_view, if (reorderable) { + const GtkTargetEntry row_targets[] = { + { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 } + }; + gtk_tree_view_enable_model_drag_source (tree_view, GDK_BUTTON1_MASK, row_targets, @@ -13316,12 +13297,9 @@ gtk_tree_view_enable_model_drag_source (GtkTreeView *tree_view, actions); di = ensure_info (tree_view); - clear_source_info (di); di->start_button_mask = start_button_mask; - di->source_target_list = gtk_target_list_new (targets, n_targets); di->source_actions = actions; - di->source_set = TRUE; unset_reorderable (tree_view); @@ -13354,11 +13332,6 @@ gtk_tree_view_enable_model_drag_dest (GtkTreeView *tree_view, actions); di = ensure_info (tree_view); - clear_dest_info (di); - - if (targets) - di->dest_target_list = gtk_target_list_new (targets, n_targets); - di->dest_set = TRUE; unset_reorderable (tree_view); @@ -13384,7 +13357,6 @@ gtk_tree_view_unset_rows_drag_source (GtkTreeView *tree_view) if (di->source_set) { gtk_drag_source_unset (GTK_WIDGET (tree_view)); - clear_source_info (di); di->source_set = FALSE; } @@ -13415,7 +13387,6 @@ gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view) if (di->dest_set) { gtk_drag_dest_unset (GTK_WIDGET (tree_view)); - clear_dest_info (di); di->dest_set = FALSE; }