about summary refs log tree commit diff stats
path: root/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'event.c')
-rw-r--r--event.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/event.c b/event.c
index 36d873f..25ed6fa 100644
--- a/event.c
+++ b/event.c
@@ -114,10 +114,10 @@ buttonpress(XEvent *e)
 			}
 			break;
 		case Button4:
-			viewnext(&a);
+			viewprev(&a);
 			break;
 		case Button5:
-			viewprev(&a);
+			viewnext(&a);
 			break;
 		}
 	}
@@ -226,8 +226,11 @@ enternotify(XEvent *e)
 
 	if((c = getclient(ev->window)) || (c = getctitle(ev->window)))
 		focus(c);
-	else if(ev->window == root)
+	else if(ev->window == root) {
 		issel = True;
+		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+		drawall();
+	}
 }
 
 static void
@@ -267,8 +270,10 @@ leavenotify(XEvent *e)
 {
 	XCrossingEvent *ev = &e->xcrossing;
 
-	if((ev->window == root) && !ev->same_screen)
-		issel = True;
+	if((ev->window == root) && !ev->same_screen) {
+		issel = False;
+		drawall();
+	}
 }
 
 static void
-0500 committer Thomas E. Dickey <dickey@invisible-island.net> 1998-03-29 19:00:00 -0500 snapshot of project "lynx", label v2-8-1dev_5' href='/ingrix/lynx-snapshots/commit/src/LYList.c?id=af9be28bc2701ea448898282942bd5b957439f18'>af9be28b ^
c68ecb8b ^
b52ca53f ^
0cb11571 ^
e087f6d4

af9be28b ^

e087f6d4

af9be28b ^

55ebd12c ^
55ebd12c ^
d326f24d ^







e087f6d4
d326f24d ^
e087f6d4

945e8eb6 ^
a2e94617 ^
f61041c1 ^
e087f6d4

d326f24d ^
b63d287c ^
b52ca53f ^
d326f24d ^
e087f6d4

945e8eb6 ^


d3f9d547 ^
d326f24d ^
945e8eb6 ^

d3f9d547 ^
d326f24d ^
e087f6d4

533c7482 ^
d326f24d ^
6e75abc0 ^
f61041c1 ^
d3f9d547 ^
f61041c1 ^


57bfc74f ^

e087f6d4
f7c3c4ca ^

aa7067e1 ^
f7c3c4ca ^

d326f24d ^
e087f6d4
55ebd12c ^

d3f9d547 ^
b52ca53f ^


55ebd12c ^
57bfc74f ^

d326f24d ^
57bfc74f ^
d3f9d547 ^
57bfc74f ^
945e8eb6 ^
945e8eb6 ^


d326f24d ^
57bfc74f ^
f6e997b7 ^
8f8c57cc ^
57bfc74f ^


2cd8e80b ^
57bfc74f ^


d326f24d ^





b63d287c ^
d326f24d ^


57bfc74f ^
f78e2771 ^
ceb4156d ^
55ebd12c ^
d326f24d ^
b63d287c ^
57bfc74f ^


8f8c57cc ^
c812b42f ^
8f8c57cc ^
57bfc74f ^
c812b42f ^
57bfc74f ^
b63d287c ^
03413d1c ^

b63d287c ^
03413d1c ^
b63d287c ^
d326f24d ^




b63d287c ^


d326f24d ^
57bfc74f ^
aa7067e1 ^

c812b42f ^


aa7067e1 ^
d326f24d ^
aa7067e1 ^


e087f6d4

945e8eb6 ^
b52ca53f ^
c68ecb8b ^
8f8c57cc ^

0cb11571 ^
8f8c57cc ^
945e8eb6 ^
8f8c57cc ^
e087f6d4
945e8eb6 ^
b6d1143c ^
d326f24d ^





e087f6d4



aa7067e1 ^
e087f6d4
945e8eb6 ^
b6d1143c ^
945e8eb6 ^
d326f24d ^

55ebd12c ^

d3f9d547 ^
945e8eb6 ^




b52ca53f ^
945e8eb6 ^


b6d1143c ^
945e8eb6 ^



d326f24d ^

d3f9d547 ^

e087f6d4
b63d287c ^
d326f24d ^







b63d287c ^



0cb11571 ^
b63d287c ^



d326f24d ^
55ebd12c ^
e087f6d4
01876e39 ^








































272f214b ^


01876e39 ^






















272f214b ^



01876e39 ^







55ebd12c ^
d326f24d ^








e087f6d4
945e8eb6 ^
945e8eb6 ^
e087f6d4
01876e39 ^


272f214b ^

01876e39 ^



57bfc74f ^
01876e39 ^
945e8eb6 ^
01876e39 ^

ff34560f ^
945e8eb6 ^
e087f6d4
01876e39 ^
e087f6d4
55ebd12c ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
size.height_inc;
	}
	else
		c->incw = c->inch = 0;
	if(c->flags & PMaxSize) {
		c->maxw = size.max_width;
		c->maxh = size.max_height;
	}
	else
		c->maxw = c->maxh = 0;
	if(c->flags & PMinSize) {
		c->minw = size.min_width;
		c->minh = size.min_height;
	}
	else
		c->minw = c->minh = 0;
	if(c->flags & PAspect) {
		c->minax = size.min_aspect.x;
		c->minay = size.min_aspect.y;
		c->maxax = size.max_aspect.x;
		c->maxay = size.max_aspect.y;
	}
	else
		c->minax = c->minay = c->maxax = c->maxay = 0;
	c->isfixed = (c->maxw && c->minw && c->maxh && c->minh &&
				c->maxw == c->minw && c->maxh == c->minh);
}

void
updatetitle(Client *c) {
	char **list = NULL;
	int n;
	XTextProperty name;

	name.nitems = 0;
	c->name[0] = 0;
	XGetTextProperty(dpy, c->win, &name, netatom[NetWMName]);
	if(!name.nitems)
		XGetWMName(dpy, c->win, &name);
	if(!name.nitems)
		return;
	if(name.encoding == XA_STRING)
		strncpy(c->name, (char *)name.value, sizeof c->name);
	else {
		if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
				&& n > 0 && *list)
		{
			strncpy(c->name, *list, sizeof c->name);
			XFreeStringList(list);
		}
	}
	XFree(name.value);
}

void
unmanage(Client *c) {
	Client *nc;

	/* The server grab construct avoids race conditions. */
	XGrabServer(dpy);
	XSetErrorHandler(xerrordummy);
	detach(c);
	detachstack(c);
	if(sel == c) {
		for(nc = stack; nc && !isvisible(nc); nc = nc->snext);
		focus(nc);
	}
	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
	setclientstate(c, WithdrawnState);
	free(c->tags);
	free(c);
	XSync(dpy, False);
	XSetErrorHandler(xerror);
	XUngrabServer(dpy);
	arrange();
}