about summary refs log tree commit diff stats
path: root/dwm.c
diff options
context:
space:
mode:
Diffstat (limited to 'dwm.c')
-rw-r--r--dwm.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/dwm.c b/dwm.c
index 61ac193..abdaa6c 100644
--- a/dwm.c
+++ b/dwm.c
@@ -172,6 +172,7 @@ static void enternotify(XEvent *e);
 static void expose(XEvent *e);
 static void focus(Client *c);
 static void focusin(XEvent *e);
+static void focusmon(const Arg *arg);
 static void focusstack(const Arg *arg);
 static unsigned long getcolor(const char *colstr);
 static Bool getrootpointer(int *x, int *y);
@@ -179,6 +180,7 @@ static long getstate(Window w);
 static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
 static void grabbuttons(Client *c, Bool focused);
 static void grabkeys(void);
+static Monitor *idxtomon(unsigned int n);
 static void initfont(const char *fontstr);
 static Bool isprotodel(Client *c);
 static void keypress(XEvent *e);
@@ -206,6 +208,7 @@ static void showhide(Client *c);
 static void sigchld(int signal);
 static void spawn(const Arg *arg);
 static void tag(const Arg *arg);
+static void tagmon(const Arg *arg);
 static int textnw(const char *text, unsigned int len);
 static void tile(Monitor *);
 static void togglebar(const Arg *arg);
@@ -230,11 +233,6 @@ static int xerror(Display *dpy, XErrorEvent *ee);
 static int xerrordummy(Display *dpy, XErrorEvent *ee);
 static int xerrorstart(Display *dpy, XErrorEvent *ee);
 static void zoom(const Arg *arg);
-#ifdef XINERAMA
-static void focusmon(const Arg *arg);
-static Monitor *idxtomon(unsigned int n);
-static void tagmon(const Arg *arg);
-#endif /* XINERAMA */
 
 /* variables */
 static char stext[256];
@@ -309,9 +307,9 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h) {
 	*h = MAX(1, *h);
 
 	if(*x > m->mx + m->mw)
-		*x = m->mw - WIDTH(c);
+		*x = m->mx + m->mw - WIDTH(c);
 	if(*y > m->my + m->mh)
-		*y = m->mh - HEIGHT(c);
+		*y = m->my + m->mh - HEIGHT(c);
 	if(*x + *w + 2 * c->bw < m->mx)
 		*x = m->mx;
 	if(*y + *h + 2 * c->bw < m->my)
@@ -636,7 +634,6 @@ drawbar(Monitor *m) {
 	}
 
 	dc.x = 0;
-#ifdef XINERAMA
 	if(mons->next) { /* more than a single monitor */
 		char buf[2];
 		buf[0] = m->screen_number + '0';
@@ -645,7 +642,6 @@ drawbar(Monitor *m) {
 		drawtext(buf, selmon == m ? dc.sel : dc.norm, True);
 		dc.x += dc.w;
 	}
-#endif /* XINERAMA */
 	m->btx = dc.x;
 	for(i = 0; i < LENGTH(tags); i++) {
 		dc.w = TEXTW(tags[i]);
@@ -803,7 +799,6 @@ focusin(XEvent *e) { /* there are some broken focus acquiring clients */
 		XSetInputFocus(dpy, selmon->sel->win, RevertToPointerRoot, CurrentTime);
 }
 
-#ifdef XINERAMA
 void
 focusmon(const Arg *arg) {
 	Monitor *m;
@@ -814,7 +809,6 @@ focusmon(const Arg *arg) {
 	selmon = m;
 	focus(NULL);
 }
-#endif /* XINERAMA */
 
 void
 focusstack(const Arg *arg) {
@@ -943,7 +937,6 @@ grabkeys(void) {
 	}
 }
 
-#ifdef XINERAMA
 Monitor *
 idxtomon(unsigned int n) {
 	unsigned int i;
@@ -952,7 +945,6 @@ idxtomon(unsigned int n) {
 	for(m = mons, i = 0; m && i != n; m = m->next, i++);
 	return m;
 }
-#endif /* XINERAMA */
 
 void
 initfont(const char *fontstr) {
@@ -1378,6 +1370,7 @@ void
 sendmon(Client *c, Monitor *m) {
 	if(c->mon == m)
 		return;
+	unfocus(c);
 	detach(c);
 	detachstack(c);
 	c->mon = m;
@@ -1531,7 +1524,6 @@ tag(const Arg *arg) {
 	}
 }
 
-#ifdef XINERAMA
 void
 tagmon(const Arg *arg) {
 	Monitor *m;
@@ -1540,7 +1532,6 @@ tagmon(const Arg *arg) {
 		return;
 	sendmon(selmon->sel, m);
 }
-#endif /* XINERAMA */
 
 int
 textnw(const char *text, unsigned int len) {
@@ -1736,9 +1727,9 @@ updategeom(void) {
 	/* default monitor setup */
 	{
 		m->screen_number = 0;
-		m->wx = 0;
+		m->mx = m->wx = 0;
 		m->my = m->wy = 0;
-		m->ww = sw;
+		m->mw = m->ww = sw;
 		m->mh = m->wh = sh;
 	}
 
ommit/dwm.1?h=5.2&id=0c3544d42fba23b99a07cf18f35ae25a3121765f'>0c3544d ^
2b35fae ^

a3e3f0b ^

2b35fae ^
3e06ede ^


292ccc4 ^
d4b7a9a ^
3e06ede ^


2b35fae ^
72655f0 ^
df74b26 ^


72655f0 ^
df74b26 ^
72655f0 ^
3e06ede ^
72655f0 ^
df74b26 ^
3af6434 ^
3e06ede ^
3af6434 ^
df74b26 ^








72655f0 ^

3e06ede ^
72655f0 ^
1549faf ^

3af6434 ^

3e06ede ^
1549faf ^
df74b26 ^





45aea23 ^



df74b26 ^






1549faf ^
df74b26 ^


1549faf ^
ba59bc8 ^
3e06ede ^


4bb89e2 ^
df74b26 ^


2b35fae ^
0c3544d ^
0e5c819 ^
4bd0d33 ^
0e5c819 ^
df74b26 ^


0e5c819 ^
4bd0d33 ^




df74b26 ^


4bd0d33 ^
0e5c819 ^
4bd0d33 ^
0e5c819 ^
df74b26 ^


0c3544d ^

dc5c070 ^

4bb89e2 ^

3e06ede ^
4bb89e2 ^




3e06ede ^
5ef6ef1 ^

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150