Introduction
Introduction Statistics Contact Development Disclaimer Help
tchanging locking algorythm for setprop. - surf - customized build of surf, the…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit 1d93bfa9ce13c7c4581611b7441fe66680ab80c3
parent b57eca1a2bf1a65899866753cf9f8488223a2b47
Author: Enno Boland (tox) <[email protected]>
Date: Sun, 8 Nov 2009 23:45:36 +0100
changing locking algorythm for setprop.
Diffstat:
M surf.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/surf.c b/surf.c
t@@ -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;
t@@ -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;
t@@ -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);
t@@ -607,6 +607,7 @@ processx(GdkXEvent *e, GdkEvent *event, gpointer d) {
arg.b = TRUE;
find(c, &arg);
}
+ lastxprop = ev->time;
return GDK_FILTER_REMOVE;
}
}
t@@ -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
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.