From 0e30ea37793defef3bcfdc8dffd449515d431c1d Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Sun, 27 Feb 2011 01:48:06 +0100 Subject: [PATCH] Propagate URI changes and update Back, Forward actions Fixes: https://bugs.launchpad.net/midori/+bug/725826 --- midori/midori-browser.c | 9 ++++++--- midori/midori-view.c | 11 +++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/midori/midori-browser.c b/midori/midori-browser.c index 5a77b3f7..e7e6f861 100644 --- a/midori/midori-browser.c +++ b/midori/midori-browser.c @@ -557,15 +557,18 @@ midori_view_context_ready_cb (GtkWidget* view, } static void -midori_view_notify_uri_cb (GtkWidget* view, +midori_view_notify_uri_cb (GtkWidget* widget, GParamSpec* pspec, MidoriBrowser* browser) { - if (view == midori_browser_get_current_tab (browser)) + if (widget == midori_browser_get_current_tab (browser)) { - const gchar* uri = midori_view_get_display_uri (MIDORI_VIEW (view)); + MidoriView* view = MIDORI_VIEW (widget); + const gchar* uri = midori_view_get_display_uri (view); GtkAction* action = _action_by_name (browser, "Location"); midori_location_action_set_text (MIDORI_LOCATION_ACTION (action), uri); + _action_set_sensitive (browser, "Back", midori_view_can_go_back (view)); + _action_set_sensitive (browser, "Forward", midori_view_can_go_forward (view)); } } diff --git a/midori/midori-view.c b/midori/midori-view.c index 5b5c1781..fc1948b2 100644 --- a/midori/midori-view.c +++ b/midori/midori-view.c @@ -1556,6 +1556,15 @@ midori_web_view_notify_icon_uri_cb (WebKitWebView* web_view, #endif #if WEBKIT_CHECK_VERSION (1, 1, 4) +static void +webkit_web_view_notify_uri_cb (WebKitWebView* web_view, + GParamSpec* pspec, + MidoriView* view) +{ + katze_assign (view->uri, g_strdup (webkit_web_view_get_uri (web_view))); + g_object_notify (G_OBJECT (view), "uri"); +} + static void webkit_web_view_notify_title_cb (WebKitWebView* web_view, GParamSpec* pspec, @@ -3613,6 +3622,8 @@ midori_view_construct_web_view (MidoriView* view) midori_web_view_notify_icon_uri_cb, view, #endif #if WEBKIT_CHECK_VERSION (1, 1, 4) + "signal::notify::uri", + webkit_web_view_notify_uri_cb, view, "signal::notify::title", webkit_web_view_notify_title_cb, view, #else