diff options
Diffstat (limited to 'src/bookmarks/ephy-bookmark-action-group.c')
-rw-r--r-- | src/bookmarks/ephy-bookmark-action-group.c | 72 |
1 files changed, 39 insertions, 33 deletions
diff --git a/src/bookmarks/ephy-bookmark-action-group.c b/src/bookmarks/ephy-bookmark-action-group.c index 85598df94..05630bd85 100644 --- a/src/bookmarks/ephy-bookmark-action-group.c +++ b/src/bookmarks/ephy-bookmark-action-group.c @@ -87,13 +87,14 @@ node_changed_cb (EphyNode *parent, char *name; name = ephy_bookmark_action_name (child); - g_return_if_fail (name); + g_assert (name != NULL); + action = gtk_action_group_get_action (actions, name); if (action) { ephy_bookmark_action_updated - (EPHY_BOOKMARK_ACTION (action)); + (EPHY_BOOKMARK_ACTION (action)); } g_free (name); @@ -102,7 +103,7 @@ node_changed_cb (EphyNode *parent, static void node_added_cb (EphyNode *parent, EphyNode *child, - GtkActionGroup *actions) + GtkActionGroup *action_group) { GtkAction *action; char *name, *accel; @@ -110,72 +111,77 @@ node_added_cb (EphyNode *parent, name = ephy_bookmark_action_name (child); action = ephy_bookmark_action_new (child, name); accel = g_strjoin ("/", "<Actions>", - gtk_action_group_get_name (actions), + gtk_action_group_get_name (action_group), name, NULL); gtk_action_set_accel_path (action, accel); - gtk_action_group_add_action (actions, action); + gtk_action_group_add_action (action_group, action); g_object_unref (action); + g_free (accel); g_free (name); ephy_bookmark_action_updated (EPHY_BOOKMARK_ACTION (action)); - g_signal_connect_swapped (G_OBJECT(action), "open-link", - G_CALLBACK (ephy_link_open), actions); + g_signal_connect_swapped (action, "open-link", + G_CALLBACK (ephy_link_open), action_group); } static void node_removed_cb (EphyNode *parent, EphyNode *child, guint index, - GtkActionGroup *actions) + GtkActionGroup *action_group) { GtkAction *action; - char *name; - - name = ephy_bookmark_action_name (child); - g_return_if_fail (name); - action = gtk_action_group_get_action (actions, name); + char name[EPHY_BOOKMARK_ACTION_NAME_BUFFER_SIZE]; + + EPHY_BOOKMARK_ACTION_NAME_PRINTF (name, child); + + action = gtk_action_group_get_action (action_group, name); if (action) { - gtk_action_group_remove_action (actions, action); + gtk_action_group_remove_action (action_group, action); } - - g_free (name); } GtkActionGroup * ephy_bookmark_group_new (EphyNode *node) { - EphyBookmarks *bookmarks = ephy_shell_get_bookmarks (ephy_shell); - EphyNode *smart = ephy_bookmarks_get_smart_bookmarks (bookmarks); - - GPtrArray *children = ephy_node_get_children (node); - GObject *actions = (GObject *) ephy_link_action_group_new ("BA"); + EphyBookmarks *bookmarks; + EphyNode *smart; + GPtrArray *children; + GtkActionGroup *action_group; guint i; + bookmarks = ephy_shell_get_bookmarks (ephy_shell); + smart = ephy_bookmarks_get_smart_bookmarks (bookmarks); + + action_group = (GtkActionGroup *) ephy_link_action_group_new ("BA"); + + children = ephy_node_get_children (node); for (i = 0; i < children->len; i++) { - node_added_cb (node, g_ptr_array_index (children, i), (GtkActionGroup *) actions); + node_added_cb (node, g_ptr_array_index (children, i), + action_group); } ephy_node_signal_connect_object (node, EPHY_NODE_CHILD_ADDED, - (EphyNodeCallback)node_added_cb, - actions); + (EphyNodeCallback) node_added_cb, + (GObject *) action_group); ephy_node_signal_connect_object (node, EPHY_NODE_CHILD_REMOVED, - (EphyNodeCallback)node_removed_cb, - actions); + (EphyNodeCallback) node_removed_cb, + (GObject *) action_group); ephy_node_signal_connect_object (node, EPHY_NODE_CHILD_CHANGED, - (EphyNodeCallback)node_changed_cb, - actions); + (EphyNodeCallback) node_changed_cb, + (GObject *) action_group); ephy_node_signal_connect_object (smart, EPHY_NODE_CHILD_ADDED, - (EphyNodeCallback)smart_added_cb, - actions); + (EphyNodeCallback) smart_added_cb, + (GObject *) action_group); ephy_node_signal_connect_object (smart, EPHY_NODE_CHILD_REMOVED, - (EphyNodeCallback)smart_removed_cb, - actions); + (EphyNodeCallback) smart_removed_cb, + (GObject *) action_group); - return GTK_ACTION_GROUP (actions); + return action_group; } |