Version: (using KDE Devel) Installed from: Compiled sources In event.c we can find this: case ConfigureRequest: { if ( e->xconfigurerequest.parent == root ) { XWindowChanges wc; unsigned int value_mask = 0; wc.border_width = 0; wc.x = e->xconfigurerequest.x; wc.y = e->xconfigurerequest.y; wc.width = e->xconfigurerequest.width; wc.height = e->xconfigurerequest.height; wc.sibling = None; wc.stack_mode = Above; value_mask = e->xconfigurerequest.value_mask | CWBorderWidth; XConfigureWindow( qt_xdisplay(), e->xconfigurerequest.window, value_mask, &wc ); return true; } break; } As you can see, sibling gets set to None, but value_mask is not modified. So any application that has CWSibling set (like when using XRestackWindows) will get an X error back, causing many applications to crash.
SVN commit 528233 by lunakl: BUG: 124087 M +3 -3 events.cpp --- branches/KDE/3.5/kdebase/kwin/events.cpp #528232:528233 @@ -402,15 +402,15 @@ if ( e->xconfigurerequest.parent == root ) { XWindowChanges wc; - unsigned int value_mask = 0; - wc.border_width = 0; + wc.border_width = e->xconfigurerequest.border_width; wc.x = e->xconfigurerequest.x; wc.y = e->xconfigurerequest.y; wc.width = e->xconfigurerequest.width; wc.height = e->xconfigurerequest.height; wc.sibling = None; wc.stack_mode = Above; - value_mask = e->xconfigurerequest.value_mask | CWBorderWidth; + unsigned int value_mask = e->xconfigurerequest.value_mask + & ( CWX | CWY | CWWidth | CWHeight | CWBorderWidth ); XConfigureWindow( qt_xdisplay(), e->xconfigurerequest.window, value_mask, &wc ); return true; }
You need to log in before you can comment on or make changes to this bug.