On Wed, 2002-11-20 at 10:59, Duane Clark wrote: > Rick Romero wrote: > > > Hey all, I'm currently testing out Pegasus Mail, and I've noticed three > > issues that I would like to help with debugging. > > > > ... > > The second issue, I've noticed that double-clicking the system tray icon > > does notrestore Pegasus Mail. I can minimize it so it appears both on > > the taskbar and the system tray, but I can't restore the application > > from the system tray icon (though I can from the taskbar). > > > > This can be fixed by this patch: > http://www.winehq.com/hypermail/wine-patches/2002/08/0094.html > > Alexandre did not like the way I did that, so hopefully you can figure > out the right fix :-)
I think you snipped the wrong issue :) You patch fixed: > By default Pegasus Mail will minimize to the system tray, not the > taskbar. > This doesn't work. Once you've minimized Pmail, or merely changed to > another virtual desktop, the app window no longer responds. (the > default is on - must turn off). With the window open, Pegasus Mail IS > on the taskbar, only the option is checked for that to disappear if > the app is minimized. I'm not sure what Alexandre may not have liked other than the extra stuff that was in there, so I yanked out the extra things that didn't do anything, and did a cvs diff -u . How is this one? (Should I have done it from wine/ instead ?) > -- -- Rick Romero IT Manager Valeo, Inc. ph: 262.695.4841 Sussex, WI. fax: 262.695.4850 [EMAIL PROTECTED]
Index: winpos.c =================================================================== RCS file: /home/wine/wine/dlls/x11drv/winpos.c,v retrieving revision 1.60 diff -u -r1.60 winpos.c --- winpos.c 14 Nov 2002 22:30:20 -0000 1.60 +++ winpos.c 20 Nov 2002 18:30:18 -0000 @@ -1345,9 +1345,8 @@ WND *win; if (!(win = WIN_GetPtr( hwnd ))) return; - - if ((win->dwStyle & WS_VISIBLE) && - (win->dwStyle & WS_MINIMIZE) && + + if ((win->dwStyle & WS_MINIMIZE) && (win->dwExStyle & WS_EX_MANAGED)) { int x, y; @@ -1373,9 +1372,8 @@ if (win->flags & WIN_RESTORE_MAX) style |= WS_MAXIMIZE; WIN_SetStyle( hwnd, style ); WIN_ReleasePtr( win ); - - SendMessageA( hwnd, WM_SHOWWINDOW, SW_RESTORE, 0 ); - SetWindowPos( hwnd, 0, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, + SendMessageA( hwnd, WM_SHOWWINDOW, SW_RESTORE, SW_SHOW ); + SetWindowPos( hwnd, 0, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, SWP_NOZORDER | SWP_WINE_NOHOSTMOVE ); } else WIN_ReleasePtr( win );