[Bug 1272] - SW_SHOWMINIMIZED bug

wine-bugs at winehq.com wine-bugs at winehq.com
Tue Feb 11 19:50:49 CST 2003


http://bugs.winehq.com/show_bug.cgi?id=1272





------- Additional Comments From dclark at akamail.com  2003-02-11 19:50 -------
It looks like SW_SHOWMINIMIZED should be setting a flag to not resize the top
level window. Like this.

Index: dlls/x11drv/winpos.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/winpos.c,v
retrieving revision 1.63
diff -u -r1.63 winpos.c
--- dlls/x11drv/winpos.c	8 Jan 2003 21:09:26 -0000	1.63
+++ dlls/x11drv/winpos.c	12 Feb 2003 01:39:59 -0000
@@ -1237,7 +1240,7 @@
             /* fall through */
 	case SW_SHOWMINIMIZED:
         case SW_FORCEMINIMIZE: /* FIXME: Does not work if thread is hung. */
-            swp |= SWP_SHOWWINDOW;
+            swp |= SWP_SHOWWINDOW | SWP_WINE_NOHOSTMOVE;
             /* fall through */
 	case SW_MINIMIZE:
             swp |= SWP_FRAMECHANGED;
@@ -1296,7 +1299,7 @@
         swp |= SWP_NOACTIVATE | SWP_NOZORDER;
 
     SetWindowPos( hwnd, HWND_TOP, newPos.left, newPos.top,
-                  newPos.right, newPos.bottom, LOWORD(swp) );
+                  newPos.right, newPos.bottom, swp );
     if (cmd == SW_HIDE)
     {
         /* FIXME: This will cause the window to be activated irrespective

The next problem is that somewhere, the SW_MINIMIZE client style is removed, but
the client window is not mapped. If you use just the above patch, you will see
the missing interior (client) area. This patch explicitely maps the client area,
but it kind of masks the original problem.

Index: dlls/x11drv/window.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/window.c,v
retrieving revision 1.50
diff -u -r1.50 window.c
--- dlls/x11drv/window.c	30 Jan 2003 01:07:43 -0000	1.50
+++ dlls/x11drv/window.c	12 Feb 2003 01:49:42 -0000
@@ -587,7 +587,7 @@
         if (was_mapped && !is_client_window_mapped( win ))
             XUnmapWindow( display, data->client_window );
         XConfigureWindow( display, data->client_window, mask, &changes );
-        if (!was_mapped && is_client_window_mapped( win ))
+        if (is_client_window_mapped( win ))
             XMapWindow( display, data->client_window );
         wine_tsx11_unlock();
     }

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://bugs.winehq.com/show_bug.cgi?id=1272>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.



More information about the wine-bugs mailing list