From: Daniel Carl Date: Thu, 5 Jun 2014 23:44:11 +0000 (+0200) Subject: Save current uri in property for easier access. X-Git-Url: https://git.owens.tech/rss.xml/rss.xml/git?a=commitdiff_plain;h=5654d8c3fd775617fe38663ce41c83687ff413dc;p=vimb.git Save current uri in property for easier access. --- diff --git a/src/main.c b/src/main.c index 72cb93e..46cb0ba 100644 --- a/src/main.c +++ b/src/main.c @@ -53,6 +53,7 @@ static gboolean context_menu_cb(WebKitWebView *view, GtkWidget *menu, static void context_menu_cb(WebKitWebView *view, GtkMenu *menu, gpointer data); #endif static void context_menu_activate_cb(GtkMenuItem *item, gpointer data); +static void uri_change_cb(WebKitWebView *view, GParamSpec param_spec); static void webview_progress_cb(WebKitWebView *view, GParamSpec *pspec); static void webview_download_progress_cb(WebKitWebView *view, GParamSpec *pspec); static void webview_load_status_cb(WebKitWebView *view, GParamSpec *pspec); @@ -450,6 +451,13 @@ static void context_menu_activate_cb(GtkMenuItem *item, gpointer data) #endif } +static void uri_change_cb(WebKitWebView *view, GParamSpec param_spec) +{ + g_free(vb.state.uri); + g_object_get(view, "uri", &vb.state.uri, NULL); + vb_update_urlbar(vb.state.uri); +} + static void webview_progress_cb(WebKitWebView *view, GParamSpec *pspec) { vb.state.progress = webkit_web_view_get_progress(view) * 100; @@ -739,6 +747,7 @@ static void init_core(void) /* init some state variable */ vb.state.enable_register = false; vb.state.enable_history = false; + vb.state.uri = g_strdup(""); /* initialize the modes */ mode_init(); @@ -844,6 +853,7 @@ static void setup_signals() #else "signal::populate-popup", G_CALLBACK(context_menu_cb), NULL, #endif + "signal::notify::uri", G_CALLBACK(uri_change_cb), NULL, "signal::notify::progress", G_CALLBACK(webview_progress_cb), NULL, "signal::notify::load-status", G_CALLBACK(webview_load_status_cb), NULL, "signal::button-release-event", G_CALLBACK(button_relase_cb), NULL, diff --git a/src/main.h b/src/main.h index d9d061c..512bdea 100644 --- a/src/main.h +++ b/src/main.h @@ -63,7 +63,7 @@ #define TIMER_END #endif -#define GET_URI() (webkit_web_view_get_uri(vb.gui.webview)) +#define GET_URI() (vb.state.uri) #define PRIMARY_CLIPBOARD() gtk_clipboard_get(GDK_SELECTION_PRIMARY) #define SECONDARY_CLIPBOARD() gtk_clipboard_get(GDK_NONE) @@ -276,6 +276,7 @@ typedef struct { /* state */ typedef struct { + char *uri; guint progress; StatusType status_type; MessageType input_type;