diff options
badwolf: disable back/forward when useless
1 files changed, 12 insertions, 0 deletions
| -rw-r--r-- | badwolf.c | 12 |
@@ -48,6 +48,8 @@ static gboolean WebViewCb_decide_policy(WebKitWebView *web_view, WebKitPolicyDecision *decision, WebKitPolicyDecisionType decision_type, gpointer user_data); +static void +WebViewCb_load_changed(WebKitWebView *webView, WebKitLoadEvent load_event, gpointer user_data); static void web_contextCb_download_started(WebKitWebContext *web_context, WebKitDownload *download, gpointer user_data); @@ -332,6 +334,15 @@ WebViewCb_decide_policy(WebKitWebView *web_view, return TRUE; } +static void +WebViewCb_load_changed(WebKitWebView *webView, WebKitLoadEvent load_event, gpointer user_data) +{ + struct Client *browser = (struct Client *)user_data; + + gtk_widget_set_sensitive(browser->back, webkit_web_view_can_go_back(browser->webView)); + gtk_widget_set_sensitive(browser->forward, webkit_web_view_can_go_forward(browser->webView)); +} + static char * detail_tls_certificate_flags(GTlsCertificateFlags tls_errors) { @@ -753,6 +764,7 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat "load-failed-with-tls-errors", G_CALLBACK(WebViewCb_load_failed_with_tls_errors), browser); + g_signal_connect(browser->webView, "load-changed", G_CALLBACK(WebViewCb_load_changed), browser); /* signals for WebView's WebContext */ g_signal_connect(G_OBJECT(web_context), |