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.
Gerard
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 handles.
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 (www.webferret.com). 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 & SWP_HIDEWINDOW)) { /* 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;
wine_tsx11_lock(); if (bChangePos) - X11DRV_sync_whole_window_position( display, wndPtr, !(winpos->flags & SWP_NOZORDER) ); + X11DRV_sync_whole_window_position( display, wndPtr, zorder); else { 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 :-)