diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-07-04 02:09:52 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-07-04 02:09:52 +0800 |
commit | 0ac23c8e7e5daa98a016308b7c4e0cc1fe510f86 (patch) | |
tree | 056e1cc2bfdfcb38fdc6229d5469c590ec13eb90 /src | |
parent | 134f4c838708b6a80e9ff8ee4d7ac8bf0f03bf6e (diff) | |
download | gsoc2013-epiphany-0ac23c8e7e5daa98a016308b7c4e0cc1fe510f86.tar.gz gsoc2013-epiphany-0ac23c8e7e5daa98a016308b7c4e0cc1fe510f86.tar.zst gsoc2013-epiphany-0ac23c8e7e5daa98a016308b7c4e0cc1fe510f86.zip |
"Open in tabs" insensitive when there are not multiple bookmarks in the
2004-07-03 Marco Pesenti Gritti <marco@gnome.org>
* src/bookmarks/ephy-topic-action.c: (can_open_in_tabs),
(append_bookmarks_menu), (add_open_in_tabs_menu),
(build_bookmarks_menu), (show_context_menu):
"Open in tabs" insensitive when there are not
multiple bookmarks in the topic.
Diffstat (limited to 'src')
-rw-r--r-- | src/bookmarks/ephy-topic-action.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/bookmarks/ephy-topic-action.c b/src/bookmarks/ephy-topic-action.c index 013f54c6d..bdbd1e50f 100644 --- a/src/bookmarks/ephy-topic-action.c +++ b/src/bookmarks/ephy-topic-action.c @@ -230,7 +230,17 @@ sort_bookmarks (gconstpointer a, gconstpointer b) #define MAX_LENGTH 32 -static guint +static gboolean +can_open_in_tabs (EphyTopicAction *action) +{ + GPtrArray *children; + + children = ephy_node_get_children (action->priv->topic_node); + + return (children->len > 1); +} + +static void append_bookmarks_menu (EphyTopicAction *action, GtkWidget *menu, EphyNode *node, gboolean show_empty) { EphyFaviconCache *cache; @@ -250,7 +260,7 @@ append_bookmarks_menu (EphyTopicAction *action, GtkWidget *menu, EphyNode *node, gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - return FALSE; + return; } else { @@ -310,8 +320,6 @@ append_bookmarks_menu (EphyTopicAction *action, GtkWidget *menu, EphyNode *node, g_list_free (node_list); } - - return children->len; } static void @@ -361,7 +369,7 @@ remove_activate_cb (GtkWidget *menu, GtkWidget *proxy) egg_toolbars_model_remove_item (model, 0, pos); } -static void +static GtkWidget * add_open_in_tabs_menu (EphyTopicAction *action, GtkWidget *menu) { GtkWidget *item; @@ -372,19 +380,20 @@ add_open_in_tabs_menu (EphyTopicAction *action, GtkWidget *menu) g_signal_connect (item, "activate", G_CALLBACK (open_in_tabs_activate_cb), action); + + return item; } static GtkWidget * build_bookmarks_menu (EphyTopicAction *action, EphyNode *node) { GtkWidget *menu; - guint n_bookmarks; menu = gtk_menu_new (); - n_bookmarks = append_bookmarks_menu (action, menu, node, TRUE); + append_bookmarks_menu (action, menu, node, TRUE); - if (n_bookmarks > 1) + if (can_open_in_tabs (action)) { GtkWidget *item; @@ -569,7 +578,8 @@ show_context_menu (EphyTopicAction *action, GtkWidget *proxy, menu = gtk_menu_new (); - add_open_in_tabs_menu (action, menu); + item = add_open_in_tabs_menu (action, menu); + gtk_widget_set_sensitive (item, can_open_in_tabs (action)); item = gtk_separator_menu_item_new (); gtk_widget_show (item); |