summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/caja-places-sidebar.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/caja-places-sidebar.c b/src/caja-places-sidebar.c
index 3acd1810..24ab023e 100644
--- a/src/caja-places-sidebar.c
+++ b/src/caja-places-sidebar.c
@@ -1130,9 +1130,12 @@ compute_drop_position (GtkTreeView *tree_view,
PLACES_SIDEBAR_COLUMN_SECTION_TYPE, &section_type,
-1);
- if (place_type == PLACES_HEADING && section_type != SECTION_BOOKMARKS) {
- /* never drop on headings, but special case the bookmarks heading,
- * so we can drop bookmarks in between it and the first item.
+ if (place_type == PLACES_HEADING &&
+ section_type != SECTION_BOOKMARKS &&
+ section_type != SECTION_NETWORK) {
+ /* never drop on headings, but the bookmarks or network heading
+ * is a special case, so we can create new bookmarks by dragging
+ * at the beginning or end of the bookmark list.
*/
gtk_tree_path_free (*path);
*path = NULL;
@@ -1150,10 +1153,13 @@ compute_drop_position (GtkTreeView *tree_view,
return FALSE;
}
- if (section_type == SECTION_BOOKMARKS) {
+ /* drag to top or bottom of bookmark list to add a bookmark */
+ if (place_type == PLACES_HEADING && section_type == SECTION_BOOKMARKS) {
*pos = GTK_TREE_VIEW_DROP_AFTER;
+ } else if (place_type == PLACES_HEADING && section_type == SECTION_NETWORK) {
+ *pos = GTK_TREE_VIEW_DROP_BEFORE;
} else {
- /* non-bookmark shortcuts can only be dragged into */
+ /* or else you want to drag items INTO the existing bookmarks */
*pos = GTK_TREE_VIEW_DROP_INTO_OR_BEFORE;
}
@@ -1540,10 +1546,16 @@ drag_data_received_callback (GtkWidget *widget,
PLACES_SIDEBAR_COLUMN_INDEX, &position,
-1);
- if (section_type != SECTION_BOOKMARKS) {
+ if (section_type != SECTION_BOOKMARKS &&
+ !(section_type == SECTION_NETWORK && place_type == PLACES_HEADING)) {
goto out;
}
+ if (section_type == SECTION_NETWORK && place_type == PLACES_HEADING &&
+ tree_pos == GTK_TREE_VIEW_DROP_BEFORE) {
+ position = caja_bookmark_list_length (sidebar->bookmarks);
+ }
+
if (tree_pos == GTK_TREE_VIEW_DROP_AFTER && place_type != PLACES_HEADING) {
/* heading already has position 0 */
position++;