Mercurial > dwm-meillo
comparison client.c @ 164:21071ae1fe68
made fullscreen apps working fine in floating mode (there is no sane way to make them work in tiled mode, thus I switch to floating mode if I run such kind of app), also fixed the xterm issue reported by Sander
author | arg@10ksloc.org |
---|---|
date | Wed, 02 Aug 2006 16:32:05 +0200 |
parents | e2e1de08341d |
children | 1db04019684e |
comparison
equal
deleted
inserted
replaced
163:e2e1de08341d | 164:21071ae1fe68 |
---|---|
1 /* | 1 /* |
2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> | 2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> |
3 * See LICENSE file for license details. | 3 * See LICENSE file for license details. |
4 */ | 4 */ |
5 #include "dwm.h" | 5 #include "dwm.h" |
6 | |
7 #include <stdlib.h> | 6 #include <stdlib.h> |
8 #include <string.h> | 7 #include <string.h> |
9 #include <X11/Xatom.h> | 8 #include <X11/Xatom.h> |
10 #include <X11/Xutil.h> | 9 #include <X11/Xutil.h> |
11 | 10 |
217 c->y = c->ty = wa->y; | 216 c->y = c->ty = wa->y; |
218 c->w = c->tw = wa->width; | 217 c->w = c->tw = wa->width; |
219 c->h = wa->height; | 218 c->h = wa->height; |
220 c->th = bh; | 219 c->th = bh; |
221 | 220 |
222 c->border = 1; | 221 c->border = 0; |
223 setsize(c); | 222 setsize(c); |
224 | 223 |
225 if(c->h != sh && c->y < bh) | 224 if(c->h != sh && c->y < bh) |
226 c->y = c->ty = bh; | 225 c->y = c->ty = bh; |
227 | 226 |
252 | 251 |
253 settags(c); | 252 settags(c); |
254 if(!c->isfloat) | 253 if(!c->isfloat) |
255 c->isfloat = trans | 254 c->isfloat = trans |
256 || (c->maxw && c->minw && | 255 || (c->maxw && c->minw && |
257 c->maxw == c->minw && c->maxh == c->minh) | 256 c->maxw == c->minw && c->maxh == c->minh); |
258 || (c->w == sw && c->h == sh); | |
259 settitle(c); | 257 settitle(c); |
260 arrange(NULL); | 258 arrange(NULL); |
261 | 259 |
262 /* mapping the window now prevents flicker */ | 260 /* mapping the window now prevents flicker */ |
263 XMapRaised(dpy, c->win); | 261 XMapRaised(dpy, c->win); |
269 void | 267 void |
270 resize(Client *c, Bool sizehints, Corner sticky) | 268 resize(Client *c, Bool sizehints, Corner sticky) |
271 { | 269 { |
272 int bottom = c->y + c->h; | 270 int bottom = c->y + c->h; |
273 int right = c->x + c->w; | 271 int right = c->x + c->w; |
274 XConfigureEvent e; | 272 /*XConfigureEvent e;*/ |
275 XWindowChanges wc; | 273 XWindowChanges wc; |
276 | 274 |
277 if(sizehints) { | 275 if(sizehints) { |
278 if(c->incw) | 276 if(c->incw) |
279 c->w -= (c->w - c->basew) % c->incw; | 277 c->w -= (c->w - c->basew) % c->incw; |
300 resizetitle(c); | 298 resizetitle(c); |
301 wc.x = c->x; | 299 wc.x = c->x; |
302 wc.y = c->y; | 300 wc.y = c->y; |
303 wc.width = c->w; | 301 wc.width = c->w; |
304 wc.height = c->h; | 302 wc.height = c->h; |
305 wc.border_width = 1; | 303 if(c->w == sw && c->h == sh) |
306 XConfigureWindow(dpy, c->win, | 304 wc.border_width = 0; |
307 CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc); | 305 else |
308 | 306 wc.border_width = 1; |
309 e.type = ConfigureNotify; | 307 XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc); |
310 e.event = c->win; | |
311 e.window = c->win; | |
312 e.x = c->x; | |
313 e.y = c->y; | |
314 e.width = c->w; | |
315 e.height = c->h; | |
316 e.border_width = c->border; | |
317 e.above = None; | |
318 e.override_redirect = False; | |
319 XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&e); | |
320 XSync(dpy, False); | 308 XSync(dpy, False); |
321 } | 309 } |
322 | 310 |
323 void | 311 void |
324 setsize(Client *c) | 312 setsize(Client *c) |
401 oy = sel->y; | 389 oy = sel->y; |
402 ow = sel->w; | 390 ow = sel->w; |
403 oh = sel->h; | 391 oh = sel->h; |
404 sel->x = sx; | 392 sel->x = sx; |
405 sel->y = sy + bh; | 393 sel->y = sy + bh; |
406 sel->w = sw - 2 * sel->border; | 394 sel->w = sw - 2; |
407 sel->h = sh - 2 * sel->border - bh; | 395 sel->h = sh - 2 - bh; |
408 | 396 |
409 higher(sel); | 397 higher(sel); |
410 resize(sel, False, TopLeft); | 398 resize(sel, False, TopLeft); |
411 | 399 |
412 sel->x = ox; | 400 sel->x = ox; |