aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/callbacks.c
diff options
context:
space:
mode:
authorGravatar Brendan Taylor <whateley@gmail.com>2011-03-05 10:39:51 -0700
committerGravatar Brendan Taylor <whateley@gmail.com>2011-03-05 10:39:51 -0700
commit5bdc30a7ff4d18450eacd0d01860f707a56689ae (patch)
treee5ff18d1953e7209b7b0f49d89f1bd97b0d571d5 /src/callbacks.c
parent867c257b09b9c0f2ebe9b748ebdeffa355ef4711 (diff)
change @uri when the fragment identifier changes
Diffstat (limited to 'src/callbacks.c')
-rw-r--r--src/callbacks.c45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index cb9b492..3a544a1 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -455,29 +455,44 @@ void
load_status_change_cb (WebKitWebView* web_view, GParamSpec param_spec) {
(void) param_spec;
- WebKitWebFrame *frame = webkit_web_view_get_main_frame(web_view);
WebKitLoadStatus status = webkit_web_view_get_load_status(web_view);
switch(status) {
case WEBKIT_LOAD_PROVISIONAL:
- send_event(LOAD_START, NULL, TYPE_STR, uzbl.state.uri ? uzbl.state.uri : "", NULL);
+ send_event(LOAD_START, NULL, TYPE_STR, uzbl.state.uri ? uzbl.state.uri : "", NULL);
break;
case WEBKIT_LOAD_COMMITTED:
- g_free (uzbl.state.uri);
- GString* newuri = g_string_new (webkit_web_frame_get_uri (frame));
- uzbl.state.uri = g_string_free (newuri, FALSE);
- g_setenv("UZBL_URI", uzbl.state.uri, TRUE);
-
+ frame = webkit_web_view_get_main_frame(web_view);
send_event(LOAD_COMMIT, NULL, TYPE_STR, webkit_web_frame_get_uri (frame), NULL);
break;
case WEBKIT_LOAD_FINISHED:
- send_event(LOAD_FINISH, NULL, TYPE_STR, webkit_web_frame_get_uri(frame), NULL);
+ send_event(LOAD_FINISH, NULL, TYPE_STR, uzbl.state.uri, NULL);
break;
case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT:
break; /* we don't do anything with this (yet) */
case WEBKIT_LOAD_FAILED:
break; /* load_error_cb will handle this case */
}
+}
+
+void
+load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud) {
+ (void) page; (void) frame; (void) ud;
+ GError *err = web_err;
+
+ send_event (LOAD_ERROR, NULL,
+ TYPE_STR, uri,
+ TYPE_INT, err->code,
+ TYPE_STR, err->message,
+ NULL);
+}
+
+void
+uri_change_cb (WebKitWebView *web_view, GParamSpec param_spec) {
+ (void) param_spec;
+ g_free (uzbl.state.uri);
+ g_object_get (web_view, "uri", &uzbl.state.uri, NULL);
+ g_setenv("UZBL_URI", uzbl.state.uri, TRUE);
}
void
@@ -492,20 +507,6 @@ selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud) {
}
void
-load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud) {
- (void) page;
- (void) frame;
- (void) ud;
- GError *err = web_err;
-
- send_event (LOAD_ERROR, NULL,
- TYPE_STR, uri,
- TYPE_INT, err->code,
- TYPE_STR, err->message,
- NULL);
-}
-
-void
destroy_cb (GtkWidget* widget, gpointer data) {
(void) widget;
(void) data;