From bug 94618 (summary) [1]: "No way to get contextmenu for current folder in list view". I've decided against an empty row at the bottom because the solution proposed by me doesn't change the folder UI state (in contrast to scrolling), except for unselection of course. Proposed patch attached, which makes Nautilus treat all clicks to columns which don't act as sort column as clicks on the folder background. [1] http://bugzilla.gnome.org/show_bug.cgi?id=94618 -- Christian Neumair <chris gnome-de org>
Index: src/file-manager/fm-list-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-list-view.c,v
retrieving revision 1.254
diff -u -p -r1.254 fm-list-view.c
--- src/file-manager/fm-list-view.c 14 Jul 2005 08:22:30 -0000 1.254
+++ src/file-manager/fm-list-view.c 19 Jul 2005 10:56:10 -0000
@@ -416,8 +608,10 @@ motion_notify_callback (GtkWidget *widge
GdkCursor *cursor;
GList *ref_list;
GdkPixbuf *pixbuf;
+ GtkTreeViewColumn *column;
GtkTreePath *last_hover_path;
GtkTreeIter iter;
+ int sort_column_id;
view = FM_LIST_VIEW (callback_data);
@@ -425,18 +619,26 @@ motion_notify_callback (GtkWidget *widge
return FALSE;
}
+ fm_list_view_update_rubberband (view);
+
if (click_policy_auto_value == NAUTILUS_CLICK_POLICY_SINGLE) {
last_hover_path = view->details->hover_path;
gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (widget),
event->x, event->y,
&view->details->hover_path,
- NULL, NULL, NULL);
+ &column, NULL, NULL);
+ cursor = NULL;
if (view->details->hover_path != NULL) {
- cursor = gdk_cursor_new (GDK_HAND2);
- } else {
- cursor = NULL;
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (view->details->model), &sort_column_id, NULL);
+
+ if (gtk_tree_view_column_get_sort_column_id (column) == sort_column_id) {
+ cursor = gdk_cursor_new (GDK_HAND2);
+ } else {
+ gtk_tree_path_free (view->details->hover_path);
+ view->details->hover_path = NULL;
+ }
}
gdk_window_set_cursor (widget->window, cursor);
@@ -544,6 +746,7 @@ button_press_callback (GtkWidget *widget
{
FMListView *view;
GtkTreeView *tree_view;
+ GtkTreeViewColumn *column;
GtkTreePath *path;
gboolean call_parent;
gboolean allow_drag;
@@ -554,6 +757,7 @@ button_press_callback (GtkWidget *widget
static int click_count = 0;
int double_click_time;
int expander_size, horizontal_separator;
+ int sort_column_id;
gboolean on_expander;
view = FM_LIST_VIEW (callback_data);
@@ -594,8 +798,10 @@ button_press_callback (GtkWidget *widget
call_parent = TRUE;
allow_drag = FALSE;
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (view->details->model), &sort_column_id, NULL);
if (gtk_tree_view_get_path_at_pos (tree_view, event->x, event->y,
- &path, NULL, NULL, NULL)) {
+ &path, &column, NULL, NULL) &&
+ gtk_tree_view_column_get_sort_column_id (column) == sort_column_id) {
/* Keep track of path of last click so double clicks only happen
* on the same item */
if ((event->button == 1 || event->button == 2) &&
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil