diff options
author | Marco Pesenti Gritti <marco@it.gnome.org> | 2003-04-30 03:08:25 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <mpeseng@src.gnome.org> | 2003-04-30 03:08:25 +0800 |
commit | b4df6c7d7c84610ecb9808103f7e411d75dfbae2 (patch) | |
tree | d3b4707e9e730034e26429a314c6916281a39e9a /embed/ephy-history.c | |
parent | db1b85b940e4ea707c0fadda76ba79ddec8f697b (diff) | |
download | gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.tar gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.tar.gz gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.tar.bz2 gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.tar.lz gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.tar.xz gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.tar.zst gsoc2013-epiphany-b4df6c7d7c84610ecb9808103f7e411d75dfbae2.zip |
We dont need a _remove api, unrefing the node will work better. Try to
2003-04-29 Marco Pesenti Gritti <marco@it.gnome.org>
* embed/ephy-history.c: (remove_obsolete_pages),
(pages_removed_cb), (ephy_history_get_last_page):
* embed/ephy-history.h:
We dont need a _remove api, unrefing the node will work
better.
Try to remove the host when it's empty. It still doesnt work
properly, prolly EphyNode bug.
* src/bookmarks/ephy-bookmark-properties.c:
(ephy_bookmark_properties_get_node):
* src/bookmarks/ephy-bookmark-properties.h:
* src/bookmarks/ephy-bookmarks-editor.c: (prop_dialog_destroy_cb),
(show_properties_dialog), (cmd_bookmark_properties),
(ephy_bookmarks_editor_finalize), (ephy_bookmarks_editor_init):
Do not open more than one dialog per node, just present it.
Picky picky Dave.
* src/ephy-automation.c: (impl_ephy_automation_loadurl):
* src/ephy-shell.c: (ephy_shell_new_tab):
Ever present the window when opening windows through automation.
Diffstat (limited to 'embed/ephy-history.c')
-rw-r--r-- | embed/ephy-history.c | 48 |
1 files changed, 16 insertions, 32 deletions
diff --git a/embed/ephy-history.c b/embed/ephy-history.c index 51dd68936..4c5cf6cbe 100644 --- a/embed/ephy-history.c +++ b/embed/ephy-history.c @@ -258,7 +258,7 @@ remove_obsolete_pages (EphyHistory *eb) if (page_is_obsolete (kid, ¤t_date)) { - ephy_history_remove (eb, kid); + ephy_node_unref (kid); } } } @@ -354,12 +354,27 @@ pages_removed_cb (EphyNode *node, EphyNode *child, EphyHistory *eb) { + EphyNode *host; + int host_id; + int children; + g_static_rw_lock_writer_lock (eb->priv->pages_hash_lock); g_hash_table_remove (eb->priv->pages_hash, ephy_node_get_property_string (child, EPHY_NODE_PAGE_PROP_LOCATION)); g_static_rw_lock_writer_unlock (eb->priv->pages_hash_lock); + + host_id = ephy_node_get_property_int (child, EPHY_NODE_PAGE_PROP_HOST_ID); + host = ephy_node_get_from_id (host_id); + children = ephy_node_get_n_children (host); + + LOG ("Check host children: %d", children) + + if (children == 0) + { + ephy_node_unref (host); + } } static gboolean @@ -835,34 +850,3 @@ ephy_history_get_last_page (EphyHistory *gh) return ephy_node_get_property_string (gh->priv->last_page, EPHY_NODE_PAGE_PROP_LOCATION); } - -void -ephy_history_remove (EphyHistory *gh, EphyNode *node) -{ - EphyNode *host; - int host_id; - - LOG ("Remove history item") - - host_id = ephy_node_get_property_int (node, EPHY_NODE_PAGE_PROP_HOST_ID); - if (host_id < 0) - { - EphyNode *tmp; - while ((tmp = ephy_node_get_nth_child (node, 0)) != NULL) - { - ephy_node_unref (tmp); - } - ephy_node_unref (node); - return; - } - - host = ephy_node_get_from_id (host_id); - if (ephy_node_get_n_children (host) == 1) - { - ephy_node_unref (host); - } - else - { - ephy_node_unref (node); - } -} |