Gerard Patel gerard.patel at
Tue Feb 19 15:17:56 CST 2002

Ring down the curtains, the farce is over ;-)

I will unsubscribe from wine lists in a few days. If anyone of
the contributors has a problem with the few lines of code I wrote
for Wine, they should not hesitate to send me a mail in my 
personal inbox, I'll try to understand what I was trying to do
and if I succeed I'll explain :-)

And if among the seven who voted against the changes there
are enough people aventurous (I did not participate to the 'vote'),
I'd be interested to hear from them and discuss a contribution to a
new project under a x11 like license.
As wine-license seems to be a continuation of the gpl/bsd
flamewar :-//, I'd prefer to talk about a x11 project elsewhere...

Thanks to all on this list who helped me.

Good luck to the Wine guys for their 1.0 version.


PS :
And ah, well, as a parting note for Alexandre Julliard : there
is a  problem with your patch made on

Revision 1.22 / (download) - [select for diffs] , Fri Sep 14 00:24:40 2001
UTC (5 months ago) by julliard
Branch: MAIN
Changes since 1.21: +8 -13 lines
Diff to previous 1.21

Make sure that HWND comparisons are always done with full 32-bit

You included this (hardly related) change in dlls/x11drv/window.c, 
line 524:

    while (prev && !(GetWindowLongW( prev, GWL_STYLE ) & WS_VISIBLE))
           prev = GetWindow( prev, GW_HWNDPREV );

This is triggering a regression in one of my test apps,
webferret ( The option window has
its tabs covering each other. I can work around with
this patch :

--- winpos.c.orig       Tue Dec 18 02:27:43 2001
+++ winpos.c    Thu Jan 10 18:08:16 2002
@@ -880,7 +880,7 @@
     if (get_whole_window(wndPtr))  /* don't do anything if X window not
created yet */
         Display *display = thread_display();
+        int zorder = !(winpos->flags & SWP_NOZORDER);
         if (!(winpos->flags & SWP_SHOWWINDOW) && (winpos->flags &
             /* clear the update region */
@@ -895,10 +895,11 @@
             TRACE( "unmapping zero size win %x\n", winpos->hwnd );
             TSXUnmapWindow( display, get_whole_window(wndPtr) );
+        else if (winpos->flags & SWP_SHOWWINDOW) zorder = TRUE;
         if (bChangePos)
-            X11DRV_sync_whole_window_position( display, wndPtr,
!(winpos->flags & SWP_NOZORDER) );
+            X11DRV_sync_whole_window_position( display, wndPtr, zorder);
             struct x11drv_win_data *data = wndPtr->pDriverData;ü

as far as I can understand your code and what the app is doing, your
new code updates the ordering of  the X window but there is a case
missing when child windows are shown using for instance ShowWindow.

But of course you'll have a better patch :-)

More information about the wine-devel mailing list