diff options
| -rw-r--r-- | surf.c | 12 | 
1 files changed, 6 insertions, 6 deletions
@@ -61,7 +61,7 @@ static SoupSession *session;  static Client *clients = NULL;  static GdkNativeWindow embed = 0;  static gboolean showxid = FALSE; -static int ignorexprop = 0; +static Time lastxprop = 0;  static char winid[64];  static char *progname;  static gboolean lockcookie = FALSE; @@ -539,6 +539,7 @@ newclient(void) {  	g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL);  	g_free(uri);  	setatom(c, findprop, ""); +	setatom(c, uriprop, "");  	c->download = NULL;  	c->title = NULL; @@ -596,9 +597,8 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {  	if(((XEvent *)e)->type == PropertyNotify) {  		ev = &((XEvent *)e)->xproperty; -		if(ignorexprop) -			ignorexprop--; -		else if(ev->state == PropertyNewValue) { +		if((!lastxprop || lastxprop + 512 < ev->time) +				&& ev->state == PropertyNewValue) {  			if(ev->atom == uriprop) {  				arg.v = getatom(c, uriprop);  				loaduri(c, &arg); @@ -607,6 +607,7 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {  				arg.b = TRUE;  				find(c, &arg);  			} +			lastxprop = ev->time;  			return GDK_FILTER_REMOVE;  		}  	} @@ -673,11 +674,10 @@ scroll(Client *c, const Arg *arg) {  void  setatom(Client *c, Atom a, const char *v) { -	XSync(dpy, False); -	ignorexprop++;  	XChangeProperty(dpy, GDK_WINDOW_XID(GTK_WIDGET(c->win)->window), a,  			XA_STRING, 8, PropModeReplace, (unsigned char *)v,  			strlen(v) + 1); +	XSync(dpy, False);  }  void  | 
