[nautilus] window-pane: use the path-event signal from NautilusPathBar
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] window-pane: use the path-event signal from NautilusPathBar
- Date: Sun, 29 Apr 2012 21:45:00 +0000 (UTC)
commit cfa51e6702ade6a8ca9045791773e6e10560262f
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Sun Apr 29 17:39:47 2012 -0400
window-pane: use the path-event signal from NautilusPathBar
Simplifies code quite a bit.
src/nautilus-window-pane.c | 121 +++++++------------------------------------
1 files changed, 20 insertions(+), 101 deletions(-)
---
diff --git a/src/nautilus-window-pane.c b/src/nautilus-window-pane.c
index e2818d5..7b6ba81 100644
--- a/src/nautilus-window-pane.c
+++ b/src/nautilus-window-pane.c
@@ -312,58 +312,21 @@ path_bar_location_changed_callback (GtkWidget *widget,
}
}
-static gboolean
-path_bar_button_pressed_callback (GtkWidget *widget,
- GdkEventButton *event,
- NautilusWindowPane *pane)
-{
- NautilusWindowSlot *slot;
- NautilusView *view;
- GFile *location;
- char *uri;
-
- g_object_set_data (G_OBJECT (widget), "handle-button-release",
- GINT_TO_POINTER (TRUE));
-
- if (event->button == 3) {
- slot = nautilus_window_get_active_slot (pane->window);
- view = slot->content_view;
- if (view != NULL) {
- location = nautilus_path_bar_get_path_for_button (
- NAUTILUS_PATH_BAR (pane->path_bar), widget);
- if (location != NULL) {
- uri = g_file_get_uri (location);
- nautilus_view_pop_up_location_context_menu (
- view, event, uri);
- g_object_unref (location);
- g_free (uri);
- return TRUE;
- }
- }
- }
-
- return FALSE;
-}
-
-static gboolean
-path_bar_button_released_callback (GtkWidget *widget,
- GdkEventButton *event,
- NautilusWindowPane *pane)
+static void
+path_bar_path_event_callback (NautilusPathBar *path_bar,
+ GFile *location,
+ GdkEventButton *event,
+ NautilusWindowPane *pane)
{
NautilusWindowSlot *slot;
NautilusWindowOpenFlags flags;
- GFile *location;
int mask;
- gboolean handle_button_release;
-
- mask = event->state & gtk_accelerator_get_default_mod_mask ();
- flags = 0;
-
- handle_button_release = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget),
- "handle-button-release"));
+ NautilusView *view;
+ char *uri;
- if (event->type == GDK_BUTTON_RELEASE && handle_button_release) {
- location = nautilus_path_bar_get_path_for_button (NAUTILUS_PATH_BAR (pane->path_bar), widget);
+ if (event->type == GDK_BUTTON_RELEASE) {
+ mask = event->state & gtk_accelerator_get_default_mod_mask ();
+ flags = 0;
if (event->button == 2 && mask == 0) {
flags = NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB;
@@ -374,23 +337,16 @@ path_bar_button_released_callback (GtkWidget *widget,
if (flags != 0) {
slot = nautilus_window_get_active_slot (pane->window);
nautilus_window_slot_open_location (slot, location, flags);
- g_object_unref (location);
- return TRUE;
}
-
- g_object_unref (location);
+ } else if (event->button == 3) {
+ slot = nautilus_window_get_active_slot (pane->window);
+ view = slot->content_view;
+ if (view != NULL) {
+ uri = g_file_get_uri (location);
+ nautilus_view_pop_up_location_context_menu (view, event, uri);
+ g_free (uri);
+ }
}
-
- return FALSE;
-}
-
-static void
-path_bar_button_drag_begin_callback (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
-{
- g_object_set_data (G_OBJECT (widget), "handle-button-release",
- GINT_TO_POINTER (FALSE));
}
static void
@@ -404,43 +360,6 @@ notebook_popup_menu_new_tab_cb (GtkMenuItem *menuitem,
}
static void
-path_bar_path_set_callback (GtkWidget *widget,
- GFile *location,
- NautilusWindowPane *pane)
-{
- GList *children, *l;
- GtkWidget *child;
-
- children = gtk_container_get_children (GTK_CONTAINER (widget));
-
- for (l = children; l != NULL; l = l->next) {
- child = GTK_WIDGET (l->data);
-
- if (!GTK_IS_TOGGLE_BUTTON (child)) {
- continue;
- }
-
- if (!g_signal_handler_find (child,
- G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
- 0, 0, NULL,
- path_bar_button_pressed_callback,
- pane)) {
- g_signal_connect (child, "button-press-event",
- G_CALLBACK (path_bar_button_pressed_callback),
- pane);
- g_signal_connect (child, "button-release-event",
- G_CALLBACK (path_bar_button_released_callback),
- pane);
- g_signal_connect (child, "drag-begin",
- G_CALLBACK (path_bar_button_drag_begin_callback),
- pane);
- }
- }
-
- g_list_free (children);
-}
-
-static void
notebook_popup_menu_move_left_cb (GtkMenuItem *menuitem,
gpointer user_data)
{
@@ -762,8 +681,8 @@ nautilus_window_pane_constructed (GObject *obj)
g_signal_connect_object (pane->path_bar, "path-clicked",
G_CALLBACK (path_bar_location_changed_callback), pane, 0);
- g_signal_connect_object (pane->path_bar, "path-set",
- G_CALLBACK (path_bar_path_set_callback), pane, 0);
+ g_signal_connect_object (pane->path_bar, "path-event",
+ G_CALLBACK (path_bar_path_event_callback), pane, 0);
/* connect to the location bar signals */
pane->location_bar = nautilus_toolbar_get_location_bar (NAUTILUS_TOOLBAR (pane->tool_bar));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]