From 58bf30c380183b929cc55b53196ad41936049bbf Mon Sep 17 00:00:00 2001 From: Ingo Krabbe Date: Sun, 6 Feb 2011 23:11:12 +0100 Subject: [PATCH] change configure requests for kde plasma desktop --- src/events.c | 33 +++++++++++++++++++++++++++------ 1 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/events.c b/src/events.c index 0a5d759..4ec7169 100644 --- a/src/events.c +++ b/src/events.c @@ -279,8 +279,24 @@ configure_request (XConfigureRequestEvent *e) } } - - PRINT_DEBUG(("request CWStackMode %d\n", e->detail)); + else if (win->state==WithdrawnState) { + /* honour the configure request, anyway */ + if (e->value_mask & CWX) changes.x = e->x; + if (e->value_mask & CWY) changes.y = e->y; + if (e->value_mask & CWWidth) changes.width = e->width; + if (e->value_mask & CWHeight) changes.height = e->height; + if (e->value_mask & CWBorderWidth) changes.border_width = e->border_width; + if (e->value_mask & CWStackMode) changes.stack_mode = e->detail; + if (e->value_mask & CWSibling) changes.sibling = e->above; + XConfigureWindow (dpy, e->window, + e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth + |CWHeight|CWStackMode|CWSibling), + &changes); + PRINT_DEBUG(("request Unmapped stacking %x:%x(%d) \"%s\"\n", + (int)e->window, (int)e->above, e->detail, window_name(win) )); + } + PRINT_DEBUG(("request CWStackMode %d %d!=%d\n", e->detail, + win->state,WithdrawnState)); } PRINT_DEBUG (("'%s' window size: %d %d %d %d %d\n", window_name (win), @@ -335,13 +351,18 @@ configure_request (XConfigureRequestEvent *e) } else { + + PRINT_DEBUG(("UNMANAGED CONFIGURATION %x\n" + "X=%5d\n" "Y=%5d\n", + (int)e->window, e->x, e->y + )); /* Its an unmanaged window, so give it what it wants. But don't change the stack mode.*/ if (e->value_mask & CWX) changes.x = e->x; - if (e->value_mask & CWY) changes.x = e->x; - if (e->value_mask & CWWidth) changes.x = e->x; - if (e->value_mask & CWHeight) changes.x = e->x; - if (e->value_mask & CWBorderWidth) changes.x = e->x; + if (e->value_mask & CWY) changes.y = e->y; + if (e->value_mask & CWWidth) changes.width = e->width; + if (e->value_mask & CWHeight) changes.height = e->height; + if (e->value_mask & CWBorderWidth) changes.border_width = e->border_width; XConfigureWindow (dpy, e->window, e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight), &changes); -- 1.7.4