[Xfce4-commits] [apps/gigolo] 15/26: Do not attach menu to multiple widgets

noreply at xfce.org noreply at xfce.org
Thu Oct 25 08:04:07 CEST 2018


This is an automated email from the git hooks/post-receive script.

l   a   n   d   r   y       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/gigolo.

commit c26ff2187970461fd3d1bd39908b199fd01718e2
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Tue Oct 23 21:49:35 2018 -0400

    Do not attach menu to multiple widgets
---
 src/window.c | 45 +++++++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/src/window.c b/src/window.c
index b103e20..4a44506 100644
--- a/src/window.c
+++ b/src/window.c
@@ -68,7 +68,10 @@ struct _GigoloWindowPrivate
 	GtkWidget		*swin_iconview;
 	GtkListStore	*store;
 	GtkWidget		*tree_popup_menu;
-	GtkMenu		    *bookmarks_menu;
+
+	GtkMenu		    *menubar_bookmarks_menu;
+	GtkMenu		    *systray_bookmarks_menu;
+	GtkMenu		    *toolbar_bookmarks_menu;
 
 	GtkWidget		*toolbar;
 	GtkStatusIcon	*systray_icon;
@@ -929,7 +932,9 @@ void gigolo_window_update_bookmarks(GigoloWindow *window)
 	g_ptr_array_sort(bookmarks, sort_bookmarks);
 
 	/* writing to the 'settings' property will update the menus */
-	g_object_set(priv->bookmarks_menu, "settings", priv->settings, NULL);
+	g_object_set(priv->menubar_bookmarks_menu, "settings", priv->settings, NULL);
+	g_object_set(priv->systray_bookmarks_menu, "settings", priv->settings, NULL);
+	g_object_set(priv->toolbar_bookmarks_menu, "settings", priv->settings, NULL);
 	g_object_set(priv->bookmark_panel, "settings", priv->settings, NULL);
 
 	/* update the popup menu items */
@@ -1248,12 +1253,14 @@ static void bind_actions (GigoloWindow *window)
 	g_signal_connect (widget, "activate", G_CALLBACK(preferences_cb), window);
 
 	/* Bookmarks */
-	widget = GTK_WIDGET (gtk_builder_get_object (builder, "menu_Bookmarks"));
-	gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget), GTK_WIDGET (priv->bookmarks_menu));
-	gtk_widget_set_sensitive (widget, TRUE);
+	g_signal_connect(priv->menubar_bookmarks_menu, "item-clicked", G_CALLBACK(action_bookmark_activate_cb), window);
+	g_signal_connect(priv->menubar_bookmarks_menu, "button-clicked", G_CALLBACK(mount_cb), window);
 
-	widget = GTK_WIDGET (gtk_builder_get_object (builder, "toolitem_Bookmarks"));
-	gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (widget), GTK_WIDGET (priv->bookmarks_menu));
+	g_signal_connect(priv->systray_bookmarks_menu, "item-clicked", G_CALLBACK(action_bookmark_activate_cb), window);
+	g_signal_connect(priv->systray_bookmarks_menu, "button-clicked", G_CALLBACK(mount_cb), window);
+
+	g_signal_connect(priv->toolbar_bookmarks_menu, "item-clicked", G_CALLBACK(action_bookmark_activate_cb), window);
+	g_signal_connect(priv->toolbar_bookmarks_menu, "button-clicked", G_CALLBACK(mount_cb), window);
 
 	/* Create (Edit) Bookmark (Ctrl + N) */
 	widget = GTK_WIDGET (gtk_builder_get_object (builder, "popupitem_EditBookmark"));
@@ -1363,6 +1370,7 @@ static void create_ui_elements(GigoloWindow *window)
 {
 	GError *error = NULL;
 	GigoloWindowPrivate *priv = gigolo_window_get_instance_private(window);
+	GtkWidget *widget;
 	priv->builder = gtk_builder_new();
 	gtk_builder_add_from_string(priv->builder, gigolo_ui,
 								gigolo_ui_length, &error);
@@ -1377,6 +1385,19 @@ static void create_ui_elements(GigoloWindow *window)
 	priv->toolbar = GTK_WIDGET (gtk_builder_get_object (priv->builder, "toolbar"));
 	priv->systray_icon_popup_menu = GTK_WIDGET (gtk_builder_get_object (priv->builder, "systray_icon_popup_menu"));
 	priv->notebook_store = GTK_WIDGET (gtk_builder_get_object (priv->builder, "notebook_store"));
+	priv->menubar_bookmarks_menu = gigolo_menu_button_action_new("Bookmarks");
+	priv->systray_bookmarks_menu = gigolo_menu_button_action_new("Bookmarks");
+	priv->toolbar_bookmarks_menu = gigolo_menu_button_action_new("Bookmarks");
+
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "menu_Bookmarks"));
+	gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget), GTK_WIDGET (priv->menubar_bookmarks_menu));
+	gtk_widget_set_sensitive (widget, TRUE);
+
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "systray_Bookmarks"));
+	gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget), GTK_WIDGET (priv->systray_bookmarks_menu));
+
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "toolitem_Bookmarks"));
+	gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (widget), GTK_WIDGET (priv->toolbar_bookmarks_menu));
 
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook_store), 0);
 
@@ -1385,12 +1406,6 @@ static void create_ui_elements(GigoloWindow *window)
 	gtk_container_add (GTK_CONTAINER (window), priv->vbox);
 	g_object_unref (priv->vbox);
 
-	priv->bookmarks_menu = gigolo_menu_button_action_new("Bookmarks");
-	g_signal_connect(priv->bookmarks_menu, "item-clicked",
-		G_CALLBACK(action_bookmark_activate_cb), window);
-	g_signal_connect(priv->bookmarks_menu, "button-clicked", G_CALLBACK(mount_cb), window);
-	g_object_ref (priv->bookmarks_menu);
-
 	bind_actions (window);
 }
 
@@ -1618,7 +1633,9 @@ GtkWidget *gigolo_window_new(GigoloSettings *settings)
 	priv->settings = settings;
 	g_signal_connect(settings, "notify", G_CALLBACK(gigolo_window_settings_notify_cb), window);
 
-	g_object_set(priv->bookmarks_menu, "settings", settings, NULL);
+	g_object_set(priv->menubar_bookmarks_menu, "settings", settings, NULL);
+	g_object_set(priv->systray_bookmarks_menu, "settings", settings, NULL);
+	g_object_set(priv->toolbar_bookmarks_menu, "settings", settings, NULL);
 
 	g_object_set(priv->backend_gvfs, "parent", window, "store", priv->store, NULL);
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list