summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadraig O'Briain <padraig.obriain@sun.com>2003-05-16 15:07:44 +0000
committerPadraig O'Briain <padraigo@src.gnome.org>2003-05-16 15:07:44 +0000
commitf88c4e6d04b17d111812ad50a461549fd1073d64 (patch)
tree523656856b7a7e8c80a0fcb8e5a595019b575350
parent81efc98fb30e9b1d2984399f4df8fb79bfdc43dd (diff)
downloadnautilus-f88c4e6d04b17d111812ad50a461549fd1073d64.tar.gz
Use the signal "popup_menu" to handle Shift+F10 instead of doing it in
2003-05-16 Padraig O'Briain <padraig.obriain@sun.com> * src/file-manager/fm-list-view.c: Use the signal "popup_menu" to handle Shift+F10 instead of doing it in "key_press_event" signal handler. This fixes bug #103348.
-rw-r--r--ChangeLog6
-rw-r--r--src/file-manager/fm-list-view.c34
2 files changed, 29 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index e83b67169..f09e0387f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2003-05-16 Padraig O'Briain <padraig.obriain@sun.com>
+ * src/file-manager/fm-list-view.c:
+ Use the signal "popup_menu" to handle Shift+F10 instead of doing
+ it in "key_press_event" signal handler. This fixes bug #103348.
+
+2003-05-16 Padraig O'Briain <padraig.obriain@sun.com>
+
* libnautilus-private/nautilus-program-chooser.c:
(nautilus_program_chooser_instance_init): Add calls to
gtk_label_set_mnemonic_widget so that ATK relation label-for and
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 5bb774411..0d33a5cc2 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -362,6 +362,16 @@ motion_notify_callback (GtkWidget *widget,
return TRUE;
}
+static void
+do_popup_menu (GtkWidget *widget, FMListView *view, GdkEventButton *event)
+{
+ if (tree_view_has_selection (GTK_TREE_VIEW (widget))) {
+ fm_directory_view_pop_up_selection_context_menu (FM_DIRECTORY_VIEW (view), event);
+ } else {
+ fm_directory_view_pop_up_background_context_menu (FM_DIRECTORY_VIEW (view), event);
+ }
+}
+
static gboolean
button_press_callback (GtkWidget *widget, GdkEventButton *event, gpointer callback_data)
{
@@ -460,11 +470,7 @@ button_press_callback (GtkWidget *widget, GdkEventButton *event, gpointer callba
}
if (event->button == 3) {
- if (tree_view_has_selection (tree_view)) {
- fm_directory_view_pop_up_selection_context_menu (FM_DIRECTORY_VIEW (view), (GdkEventButton *) event);
- } else {
- fm_directory_view_pop_up_background_context_menu (FM_DIRECTORY_VIEW (view), (GdkEventButton *) event);
- }
+ do_popup_menu (widget, view, event);
}
gtk_tree_path_free (path);
@@ -499,6 +505,16 @@ button_release_callback (GtkWidget *widget,
}
static gboolean
+popup_menu_callback (GtkWidget *widget, gpointer callback_data)
+{
+ FMListView *view;
+
+ view = FM_LIST_VIEW (callback_data);
+
+ do_popup_menu (widget, view, NULL);
+}
+
+static gboolean
key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_data)
{
FMDirectoryView *view;
@@ -510,12 +526,6 @@ key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_dat
case GDK_F10:
if (event->state & GDK_CONTROL_MASK) {
fm_directory_view_pop_up_background_context_menu (view, &button_event);
- } else if (event->state & GDK_SHIFT_MASK) {
- if (tree_view_has_selection (GTK_TREE_VIEW (widget))) {
- fm_directory_view_pop_up_selection_context_menu (view, &button_event);
- } else {
- fm_directory_view_pop_up_background_context_menu (view, &button_event);
- }
}
break;
case GDK_space:
@@ -693,6 +703,8 @@ create_and_set_up_tree_view (FMListView *view)
G_CALLBACK (button_release_callback), view, 0);
g_signal_connect_object (view->details->tree_view, "key_press_event",
G_CALLBACK (key_press_callback), view, 0);
+ g_signal_connect_object (view->details->tree_view, "popup_menu",
+ G_CALLBACK (popup_menu_callback), view, 0);
view->details->model = g_object_new (FM_TYPE_LIST_MODEL, NULL);
gtk_tree_view_set_model (view->details->tree_view, GTK_TREE_MODEL (view->details->model));