38
38
#include <string.h>
39
39
#include <eel/eel-vfs-extensions.h>
40
40
#include <eel/eel-gdk-extensions.h>
41
+ #include <eel/eel-gtk-extensions.h>
41
42
#include <eel/eel-glib-extensions.h>
42
43
#include <gdk/gdk.h>
43
44
#include <gdk/gdkkeysyms.h>
@@ -1776,6 +1777,25 @@ get_root_uri_callback (NemoTreeViewDragDest *dest,
1776
1777
return nemo_view_get_uri (NEMO_VIEW (view ));
1777
1778
}
1778
1779
1780
+ // this is confusing... so rename them.
1781
+ #define ALLOW_EXPAND FALSE
1782
+ #define PREVENT_EXPAND TRUE
1783
+
1784
+ static gboolean
1785
+ test_expand_row_callback (GtkTreeView * treeview ,
1786
+ GtkTreeIter * iter ,
1787
+ GtkTreePath * path ,
1788
+ gpointer user_data )
1789
+ {
1790
+ NemoListView * view = NEMO_LIST_VIEW (user_data );
1791
+
1792
+ if (eel_gtk_get_treeview_row_text_is_under_pointer (view -> details -> tree_view )) {
1793
+ return ALLOW_EXPAND ;
1794
+ }
1795
+
1796
+ return PREVENT_EXPAND ;
1797
+ }
1798
+
1779
1799
static NemoFile *
1780
1800
get_file_for_path_callback (NemoTreeViewDragDest * dest ,
1781
1801
GtkTreePath * path ,
@@ -1785,6 +1805,10 @@ get_file_for_path_callback (NemoTreeViewDragDest *dest,
1785
1805
1786
1806
view = NEMO_LIST_VIEW (user_data );
1787
1807
1808
+ if (!eel_gtk_get_treeview_row_text_is_under_pointer (view -> details -> tree_view )) {
1809
+ return NULL ;
1810
+ }
1811
+
1788
1812
return nemo_list_model_file_for_path (view -> details -> model , path );
1789
1813
}
1790
1814
@@ -2490,7 +2514,7 @@ create_and_set_up_tree_view (NemoListView *view)
2490
2514
gtk_binding_entry_remove (binding_set , GDK_KEY_BackSpace , 0 );
2491
2515
2492
2516
view -> details -> drag_dest =
2493
- nemo_tree_view_drag_dest_new (view -> details -> tree_view );
2517
+ nemo_tree_view_drag_dest_new (view -> details -> tree_view , TRUE );
2494
2518
2495
2519
g_signal_connect_object (view -> details -> drag_dest ,
2496
2520
"get_root_uri" ,
@@ -2546,6 +2570,8 @@ create_and_set_up_tree_view (NemoListView *view)
2546
2570
G_CALLBACK (row_collapsed_callback ), view , 0 );
2547
2571
g_signal_connect_object (view -> details -> tree_view , "row-activated" ,
2548
2572
G_CALLBACK (row_activated_callback ), view , 0 );
2573
+ g_signal_connect_object (view -> details -> tree_view , "test-expand-row" ,
2574
+ G_CALLBACK (test_expand_row_callback ), view , 0 );
2549
2575
2550
2576
g_signal_connect_object (view -> details -> tree_view , "focus_in_event" ,
2551
2577
G_CALLBACK (focus_in_event_callback ), view , 0 );
0 commit comments