[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