wine/dlls/x11drv winpos.c
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Nov 3 13:31:38 CST 2005
ChangeSet ID: 21093
CVSROOT: /opt/cvs-commit
Module name: wine
Changes by: julliard at winehq.org 2005/11/03 13:31:38
Modified files:
dlls/x11drv : winpos.c
Log message:
Dmitry Timoshkov <dmitry at codeweavers.com>
Stricter check whether a window needs to be mapped on the screen.
Patch: http://cvs.winehq.org/patch.py?id=21093
Old revision New revision Changes Path
1.139 1.140 +12 -11 wine/dlls/x11drv/winpos.c
Index: wine/dlls/x11drv/winpos.c
diff -u -p wine/dlls/x11drv/winpos.c:1.139 wine/dlls/x11drv/winpos.c:1.140
--- wine/dlls/x11drv/winpos.c:1.139 3 Nov 2005 19:31:38 -0000
+++ wine/dlls/x11drv/winpos.c 3 Nov 2005 19:31:38 -0000
@@ -643,11 +643,12 @@ BOOL X11DRV_set_window_pos( HWND hwnd, H
if (data->whole_window && !(swp_flags & SWP_WINE_NOHOSTMOVE))
{
- if (!(old_style & WS_VISIBLE) && (new_style & WS_VISIBLE))
+ if ((new_style & WS_VISIBLE) && !(new_style & WS_MINIMIZE) &&
+ X11DRV_is_window_rect_mapped( rectWindow ))
{
- /* window got shown, map it */
- if (X11DRV_is_window_rect_mapped( rectWindow ))
+ if (!(old_style & WS_VISIBLE))
{
+ /* window got shown, map it */
TRACE( "mapping win %p\n", hwnd );
X11DRV_sync_window_style( display, data );
X11DRV_set_wm_hints( display, data );
@@ -655,14 +656,14 @@ BOOL X11DRV_set_window_pos( HWND hwnd, H
XMapWindow( display, data->whole_window );
wine_tsx11_unlock();
}
- }
- else if ((new_style & WS_VISIBLE) && X11DRV_is_window_rect_mapped( rectWindow ))
- {
- /* resizing from zero size to non-zero -> map */
- TRACE( "mapping non zero size or off-screen win %p\n", hwnd );
- wine_tsx11_lock();
- XMapWindow( display, data->whole_window );
- wine_tsx11_unlock();
+ else if ((swp_flags & (SWP_NOSIZE | SWP_NOMOVE)) != (SWP_NOSIZE | SWP_NOMOVE))
+ {
+ /* resizing from zero size to non-zero -> map */
+ TRACE( "mapping non zero size or off-screen win %p\n", hwnd );
+ wine_tsx11_lock();
+ XMapWindow( display, data->whole_window );
+ wine_tsx11_unlock();
+ }
}
wine_tsx11_lock();
XFlush( display ); /* FIXME: should not be necessary */
More information about the wine-cvs
mailing list