pinosaur
/
surf.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
b57eca1
)
changing locking algorythm for setprop.
author
Enno Boland (tox)
<tox@s01.de>
Sun, 8 Nov 2009 22:45:36 +0000
(23:45 +0100)
committer
Enno Boland (tox)
<tox@s01.de>
Sun, 8 Nov 2009 22:45:36 +0000
(23:45 +0100)
surf.c
patch
|
blob
|
history
diff --git
a/surf.c
b/surf.c
index
478c07e
..
66a60d0
100644
(file)
--- a/
surf.c
+++ b/
surf.c
@@
-61,7
+61,7
@@
static SoupSession *session;
static Client *clients = NULL;
static GdkNativeWindow embed = 0;
static gboolean showxid = FALSE;
static Client *clients = NULL;
static GdkNativeWindow embed = 0;
static gboolean showxid = FALSE;
-static
int ignore
xprop = 0;
+static
Time last
xprop = 0;
static char winid[64];
static char *progname;
static gboolean lockcookie = FALSE;
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, "");
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;
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(((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);
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);
}
arg.b = TRUE;
find(c, &arg);
}
+ lastxprop = ev->time;
return GDK_FILTER_REMOVE;
}
}
return GDK_FILTER_REMOVE;
}
}
@@
-673,11
+674,10
@@
scroll(Client *c, const Arg *arg) {
void
setatom(Client *c, Atom a, const char *v) {
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);
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
}
void