[anjuta] fm: select file under cursor when displaying popup menu



commit 8545f320df8f6bf67122902ca3afaaf8ce92a89f
Author: Sébastien Granjoux <seb sfo free fr>
Date:   Sun Jan 17 10:49:24 2010 +0100

    fm: select file under cursor when displaying popup menu

 plugins/file-manager/file-view.c |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)
---
diff --git a/plugins/file-manager/file-view.c b/plugins/file-manager/file-view.c
index c615197..4b90d66 100644
--- a/plugins/file-manager/file-view.c
+++ b/plugins/file-manager/file-view.c
@@ -262,14 +262,34 @@ file_view_do_popup_menu (GtkWidget* widget, GdkEventButton* event)
 static gboolean
 file_view_button_press_event (GtkWidget *widget, GdkEventButton *event)
 {
-  /* Ignore double-clicks and triple-clicks */
-  if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
+	/* Ignore double-clicks and triple-clicks */
+	if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
     {
-      file_view_do_popup_menu (widget, event);
-      return TRUE;
+		GtkTreePath *path;
+
+		/* Select file under cursor if not selected */
+        if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget),
+                        event->x,event->y, &path, NULL, NULL, NULL))
+		{
+			GtkTreeSelection *selection;
+
+			selection = gtk_tree_view_get_selection(GTK_TREE_VIEW (widget));
+	        if (!gtk_tree_selection_path_is_selected(selection, path))
+    	    {
+        	    gtk_tree_selection_unselect_all(selection);
+	            gtk_tree_selection_select_path(selection, path);
+    	        gtk_tree_view_set_cursor(GTK_TREE_VIEW(widget),
+        	                        path, NULL, FALSE);
+        	}
+        	gtk_tree_path_free (path);
+			
+			file_view_do_popup_menu (widget, event);
+		
+      		return TRUE;
+		}
     }
 
- return 	
+	return 	
 		GTK_WIDGET_CLASS (file_view_parent_class)->button_press_event (widget,
 																	   event);
 }



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