aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/rio/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/rio/event.c')
-rw-r--r--src/cmd/rio/event.c39
1 files changed, 12 insertions, 27 deletions
diff --git a/src/cmd/rio/event.c b/src/cmd/rio/event.c
index b237cd1d..c7ae135c 100644
--- a/src/cmd/rio/event.c
+++ b/src/cmd/rio/event.c
@@ -124,9 +124,6 @@ configurereq(XConfigureRequestEvent *e)
e->value_mask &= ~CWSibling;
if(c){
- c->x -= c->border;
- c->y -= c->border;
-
if(e->value_mask & CWX)
c->x = e->x;
if(e->value_mask & CWY)
@@ -138,31 +135,19 @@ configurereq(XConfigureRequestEvent *e)
if(e->value_mask & CWBorderWidth)
c->border = e->border_width;
- if(!(e->value_mask & (CWX|CWY))){
- e->x = 0;
- e->y = 0;
- }
-
- if((e->value_mask & (CWWidth|CWHeight)) == (CWWidth|CWHeight)
- && c->dx >= c->screen->width && c->dy >= c->screen->height
- && e->x == 0 && e->y == 0){
+ if(c->dx >= c->screen->width && c->dy >= c->screen->height)
c->border = 0;
- e->value_mask |= CWX|CWY;
- }else
+ else
c->border = BORDER;
- c->x += c->border;
- c->y += c->border;
-
- e->x = c->x;
- e->y = c->y;
-
if(e->value_mask & CWStackMode){
if(e->detail == Above)
top(c);
else
e->value_mask &= ~CWStackMode;
}
+ e->value_mask |= CWX|CWY|CWHeight|CWWidth;
+
if(c->parent != c->screen->root && c->window == e->window){
wc.x = c->x - c->border;
wc.y = c->y - c->border;
@@ -172,6 +157,7 @@ configurereq(XConfigureRequestEvent *e)
wc.sibling = None;
wc.stack_mode = e->detail;
XConfigureWindow(dpy, c->parent, e->value_mask, &wc);
+
if(e->value_mask & CWStackMode){
top(c);
active(c);
@@ -179,22 +165,21 @@ configurereq(XConfigureRequestEvent *e)
}
}
- if(c && c->init){
+ if(c && c->parent != c->screen->root){
wc.x = c->border;
wc.y = c->border;
+ }else {
+ wc.x = c->x;
+ wc.y = c->y;
}
- else {
- wc.x = e->x;
- wc.y = e->y;
- }
- wc.width = e->width;
- wc.height = e->height;
+ wc.width = c->dx;
+ wc.height = c->dy;
wc.border_width = 0;
wc.sibling = None;
wc.stack_mode = Above;
e->value_mask &= ~CWStackMode;
e->value_mask |= CWBorderWidth;
- XConfigureWindow(dpy, e->window, e->value_mask, &wc);
+ XConfigureWindow(dpy, c->window, e->value_mask, &wc);
}
void