From 78802e6993a0f44d7ac7ff7d0922d55d1b089dac Mon Sep 17 00:00:00 2001 From: rsc Date: Sat, 24 Apr 2004 04:52:49 +0000 Subject: various bug fixes --- src/cmd/rio/event.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/cmd/rio/event.c') diff --git a/src/cmd/rio/event.c b/src/cmd/rio/event.c index ff053776..a14c4acc 100644 --- a/src/cmd/rio/event.c +++ b/src/cmd/rio/event.c @@ -352,6 +352,7 @@ property(XPropertyEvent *e) Atom a; int delete; Client *c; + long msize; /* we don't set curtime as nothing here uses it */ a = e->atom; @@ -378,6 +379,15 @@ property(XPropertyEvent *e) case XA_WM_TRANSIENT_FOR: gettrans(c); return; + case XA_WM_HINTS: + case XA_WM_SIZE_HINTS: + case XA_WM_ZOOM_HINTS: + /* placeholders to not forget. ignore for now. -Axel */ + return; + case XA_WM_NORMAL_HINTS: + if (XGetWMNormalHints(dpy, c->window, &c->size, &msize) == 0 || c->size.flags == 0) + c->size.flags = PSize; /* not specified - punt */ + return; } if (a == _rio_hold_mode) { c->hold = getiprop(c->window, _rio_hold_mode); @@ -404,7 +414,12 @@ reparent(XReparentEvent *e) if ((s = getscreen(e->parent)) != 0) { c = getclient(e->window, 1); if (c != 0 && (c->dx == 0 || c->dy == 0)) { + /* flush any errors */ + ignore_badwindow = 1; XGetWindowAttributes(dpy, c->window, &attr); + XSync(dpy, False); + ignore_badwindow = 0; + c->x = attr.x; c->y = attr.y; c->dx = attr.width; -- cgit v1.2.3