[gtk+/places-sidebar: 537/539] Dropping on the feedback row is always possible



commit 3815f5d9560c94481b95d24ddb31a8ddce3d213f
Author: Federico Mena Quintero <federico gnome org>
Date:   Fri Apr 19 15:49:54 2013 -0500

    Dropping on the feedback row is always possible
    
    Signed-off-by: Federico Mena Quintero <federico gnome org>

 gtk/gtkplacessidebar.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c
index 2be9b97..697dad5 100644
--- a/gtk/gtkplacessidebar.c
+++ b/gtk/gtkplacessidebar.c
@@ -1306,6 +1306,12 @@ compute_drop_position (GtkTreeView             *tree_view,
 
        drop_possible = TRUE;
 
+       /* Normalize drops on the feedback row */
+       if (place_type == PLACES_DROP_FEEDBACK) {
+               *pos = GTK_TREE_VIEW_DROP_INTO_OR_BEFORE;
+               goto out;
+       }
+
        /* Never drop on headings, but special case the bookmarks heading,
         * so we can drop bookmarks in between it and the first bookmark.
         */
@@ -1367,6 +1373,8 @@ compute_drop_position (GtkTreeView             *tree_view,
                g_free (uri);
        }
 
+out:
+
        if (!drop_possible) {
                gtk_tree_path_free (*path);
                *path = NULL;
@@ -1430,8 +1438,6 @@ start_drop_feedback (GtkPlacesSidebar *sidebar, GtkTreePath *path, GtkTreeViewDr
                int new_bookmark_index;
                GtkTreeIter iter;
 
-               g_assert (pos == GTK_TREE_VIEW_DROP_BEFORE || pos == GTK_TREE_VIEW_DROP_AFTER);
-
                new_bookmark_index = gtk_tree_path_get_indices (path)[0];
 
                if (pos == GTK_TREE_VIEW_DROP_AFTER)
@@ -1518,11 +1524,11 @@ drag_motion_callback (GtkTreeView *tree_view,
                                            PLACES_SIDEBAR_COLUMN_ROW_TYPE, &place_type,
                                            -1);
 
-                       if (section_type == SECTION_BOOKMARKS) {
-                               if (pos == GTK_TREE_VIEW_DROP_BEFORE || pos == GTK_TREE_VIEW_DROP_AFTER) {
-                                       action = GDK_ACTION_COPY;
-                                       drop_as_bookmarks = TRUE;
-                               }
+                       if (place_type == PLACES_DROP_FEEDBACK
+                           || (section_type == SECTION_BOOKMARKS
+                               && (pos == GTK_TREE_VIEW_DROP_BEFORE || pos == GTK_TREE_VIEW_DROP_AFTER))) {
+                               action = GDK_ACTION_COPY;
+                               drop_as_bookmarks = TRUE;
                        }
 
                        if (!drop_as_bookmarks) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]