Module: wine Branch: master Commit: 5787c12ba66c055bc0747ef63644df1dbfad86be URL: http://source.winehq.org/git/wine.git/?a=commit;h=5787c12ba66c055bc0747ef636...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Mar 24 15:47:28 2008 +0100
winex11: Setting window z-order using a sibling doesn't work with some window managers.
So let's see what happens if we don't set z-order at all in that case.
---
dlls/winex11.drv/window.c | 20 ++++---------------- 1 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 4802add..4a393d9 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1048,20 +1048,8 @@ void X11DRV_sync_window_position( Display *display, struct x11drv_win_data *data changes.stack_mode = Above; mask |= CWStackMode; } - else - { - /* should use stack_mode Below but most window managers don't get it right */ - /* so move it above the next one in Z order */ - HWND next = GetWindow( data->hwnd, GW_HWNDNEXT ); - while (next && !(GetWindowLongW( next, GWL_STYLE ) & WS_VISIBLE)) - next = GetWindow( next, GW_HWNDNEXT ); - if (next) - { - changes.stack_mode = Above; - changes.sibling = X11DRV_get_whole_window(next); - mask |= CWStackMode | CWSibling; - } - } + /* should use stack_mode Below but most window managers don't get it right */ + /* and Above with a sibling doesn't work so well either, so we ignore it */ }
/* only the size is allowed to change for the desktop window */ @@ -1071,8 +1059,8 @@ void X11DRV_sync_window_position( Display *display, struct x11drv_win_data *data { DWORD style = GetWindowLongW( data->hwnd, GWL_STYLE );
- TRACE( "setting win %lx pos %d,%d,%dx%d after %lx changes=%x\n", - data->whole_window, data->whole_rect.left, data->whole_rect.top, + TRACE( "setting win %p/%lx pos %d,%d,%dx%d after %lx changes=%x\n", + data->hwnd, data->whole_window, data->whole_rect.left, data->whole_rect.top, data->whole_rect.right - data->whole_rect.left, data->whole_rect.bottom - data->whole_rect.top, changes.sibling, mask );