summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Dywan <christian.dywan@canonical.com>2013-07-13 20:01:15 +0000
committerTarmac <>2013-07-13 20:01:15 +0000
commite1b1d9140dfec369a233bfd1eaf52cc4a0b9608b (patch)
treea7bca9aa3a310114783c4ad3c92da407aaf49ae7
parente46510ba61ec794f571c5e71dd5d001bcf8f4fe4 (diff)
parentd93895b2d96178279391e483a4c084b7e72958e1 (diff)
downloadmidori-e1b1d9140dfec369a233bfd1eaf52cc4a0b9608b.tar.gz
Refactor history step and allow multiple title updates
-rw-r--r--midori/midori-browser.c59
1 files changed, 32 insertions, 27 deletions
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 55d92d6a..345f15d0 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -214,6 +214,10 @@ midori_browser_notebook_size_allocate_cb (GtkWidget* notebook,
GdkRectangle* allocation,
MidoriBrowser* browser);
+static void
+midori_browser_step_history (MidoriBrowser* browser,
+ MidoriView* view);
+
#define _action_by_name(brwsr, nme) \
gtk_action_group_get_action (brwsr->action_group, nme)
#define _action_set_sensitive(brwsr, nme, snstv) \
@@ -749,36 +753,37 @@ midori_view_notify_title_cb (GtkWidget* widget,
MidoriBrowser* browser)
{
MidoriView* view = MIDORI_VIEW (widget);
+ if (widget == midori_browser_get_current_tab (browser))
+ midori_browser_set_title (browser, midori_view_get_display_title (view));
+ midori_browser_step_history (browser, view);
+}
- if (midori_view_get_load_status (view) == MIDORI_LOAD_COMMITTED)
+static void
+midori_browser_step_history (MidoriBrowser* browser,
+ MidoriView* view)
+{
+ if (midori_view_get_load_status (view) != MIDORI_LOAD_COMMITTED)
+ return;
+ if (!browser->history || !browser->maximum_history_age)
+ return;
+
+ KatzeItem* proxy = midori_view_get_proxy_item (view);
+ const gchar* proxy_uri = katze_item_get_uri (proxy);
+ if (midori_uri_is_blank (proxy_uri))
+ return;
+
+ if (katze_item_get_meta_integer (proxy, "history-step") == -1
+ && !katze_item_get_meta_boolean (proxy, "dont-write-history"))
{
- KatzeItem* proxy;
- if (browser->history && browser->maximum_history_age)
- {
- const gchar* proxy_uri;
- proxy = midori_view_get_proxy_item (view);
- proxy_uri = katze_item_get_uri (proxy);
- if (!midori_uri_is_blank (proxy_uri) &&
- (katze_item_get_meta_integer (proxy, "history-step") == -1))
- {
- if (!katze_item_get_meta_boolean (proxy, "dont-write-history"))
- {
- midori_browser_new_history_item (browser, proxy);
- katze_item_set_meta_integer (proxy, "history-step", 1);
- }
- }
- else if (katze_item_get_name (proxy) &&
- !midori_uri_is_blank (proxy_uri) &&
- (katze_item_get_meta_integer (proxy, "history-step") == 1))
- {
- midori_browser_update_history_title (browser, proxy);
- katze_item_set_meta_integer (proxy, "history-step", 2);
- }
- }
+ midori_browser_new_history_item (browser, proxy);
+ katze_item_set_meta_integer (proxy, "history-step", 1);
+ }
+ else if (katze_item_get_name (proxy)
+ && katze_item_get_meta_integer (proxy, "history-step") >= 1)
+ {
+ midori_browser_update_history_title (browser, proxy);
+ katze_item_set_meta_integer (proxy, "history-step", 2);
}
-
- if (widget == midori_browser_get_current_tab (browser))
- midori_browser_set_title (browser, midori_view_get_display_title (view));
}
static void