fixing _SURF_URL XProperty. - surf - surf browser, a WebKit2GTK based browser
Log
Files
Refs
README
LICENSE
---
commit b9b055348d4b8ae9372702afc59793cdcba16144
parent ccb449f42e1b52c2152b8b91563dc4ffdcd173a9
Author: Enno Boland (Gottox) 
Date:   Mon,  8 Jun 2009 22:55:48 +0200

fixing _SURF_URL XProperty.
Diffstat:
  surf.c                              |      18 +++++++++++-------

1 file changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/surf.c b/surf.c
@@ -272,8 +272,8 @@ loadcommit(WebKitWebView *view, WebKitWebFrame *f, gpointer d) {
         Client *c = (Client *)d;
         gchar *uri;
 
-        uri = geturi(c);
         ignore_once = TRUE;
+        uri = geturi(c);
         XChangeProperty(dpy, GDK_WINDOW_XID(GTK_WIDGET(c->win)->window), urlprop,
                         XA_STRING, 8, PropModeReplace, (unsigned char *)uri,
                         strlen(uri) + 1);
@@ -425,12 +425,16 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
         unsigned char *buf = NULL;
         if(((XEvent *)e)->type == PropertyNotify) {
                 ev = &((XEvent *)e)->xproperty;
-                if(ignore_once == FALSE && ev->atom == urlprop && ev->state == PropertyNewValue) {
-                        XGetWindowProperty(dpy, ev->window, urlprop, 0L, BUFSIZ, False, XA_STRING,
-                                &adummy, &idummy, &ldummy, &ldummy, &buf);
-                        loaduri(c, (gchar *)buf);
-                        XFree(buf);
-                        return GDK_FILTER_REMOVE;
+                if(ev->atom == urlprop && ev->state == PropertyNewValue) {
+                        if(ignore_once)
+                               ignore_once = FALSE;
+                        else {
+                                XGetWindowProperty(dpy, ev->window, urlprop, 0L, BUFSIZ, False, XA_STRING,
+                                        &adummy, &idummy, &ldummy, &ldummy, &buf);
+                                loaduri(c, (gchar *)buf);
+                                XFree(buf);
+                                return GDK_FILTER_REMOVE;
+                        }
                 }
         }
         return GDK_FILTER_CONTINUE;