configurenotify remembers max geom now, and restores this if necessary, however it accepts to touch the max size on configurerequest, this shouldn't break fillscreen apps (tested with mplayer) aa1bda81
Anselm R. Garbe · 2006-08-29 17:31 2 file(s) · +14 −4
event.c +11 −1
150 150
static void
151 151
configurerequest(XEvent *e)
152 152
{
153 +
	int ox, oy, ow, oh;
153 154
	unsigned long newmask;
154 155
	Client *c;
155 156
	XConfigureRequestEvent *ev = &e->xconfigurerequest;
157 158
	XWindowChanges wc;
158 159
159 160
	if((c = getclient(ev->window))) {
161 +
		ox = c->x;
162 +
		oy = c->y;
163 +
		ow = c->w;
164 +
		oh = c->h;
160 165
		gravitate(c, True);
161 166
		if(ev->value_mask & CWX)
162 167
			c->x = ev->x;
191 196
			XSendEvent(dpy, c->win, True, NoEventMask, &synev);
192 197
		}
193 198
		XSync(dpy, False);
194 -
		if(c->isfloat)
199 +
		if(c->isfloat || c->ismax) {
195 200
			resize(c, False, TopLeft);
201 +
			c->x = ox;
202 +
			c->y = oy;
203 +
			c->w = ow;
204 +
			c->h = oh;
205 +
		}
196 206
		else
197 207
			arrange(NULL);
198 208
	}
tag.c +3 −3
31 31
static unsigned int len = 0;
32 32
33 33
static void
34 -
applytag()
34 +
commit()
35 35
{
36 36
	/* asserts sel != NULL */
37 37
	settitle(sel);
132 132
	for(i = 0; i < ntags; i++)
133 133
		sel->tags[i] = False;
134 134
	sel->tags[arg->i] = True;
135 -
	applytag();
135 +
	commit();
136 136
}
137 137
138 138
void
147 147
	for(i = 0; i < ntags && !sel->tags[i]; i++);
148 148
	if(i == ntags)
149 149
		sel->tags[arg->i] = True;
150 -
	applytag();
150 +
	commit();
151 151
}