Rick wrote:
The second issue, I've noticed that double-clicking the system tray icon does not restore 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).
The problem here appears to be that under WinNT, when double clicking on the systray icon under WinNT, messages are sent for mouse down (message 201), mouse up (message 202), double click (message 203) (the message 200 is extraneous): <00171> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000201 <00172> 0007011E R message:0x19C9 [User-defined:WM_USER+5577] lResult:00000000 <00173> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000202 <00174> 0007011E R message:0x19C9 [User-defined:WM_USER+5577] lResult:00000000 <00175> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000200 <00176> 0007011E R message:0x19C9 [User-defined:WM_USER+5577] lResult:00000000 <00177> 0007011E S message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000203
While under Wine, what is sent are two pairs of mouse down, mouse up messages: <00062> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000201 <00063> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000202 <00064> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000201 <00065> 00010024 P message:0x19C9 [User-defined:WM_USER+5577] wParam:00001F47 lParam:00000202
So while I am poking around trying to figure out where that translation should be occuring, if anyone has some hints on where to look, it would be most appreciated...
Duane Clark wrote:
The problem here appears to be that under WinNT, when double clicking on the systray icon under WinNT, messages are sent for mouse down (message 201), mouse up (message 202), double click (message 203) (the message 200 is extraneous): ... While under Wine, what is sent are two pairs of mouse down, mouse up messages:
And just as a bit more info, under both WinNT and Wine, the systray gets the dual mouse down, mouse up sequence. The SYSTRAY_WndProc() function directly the posts messages to the app. So it appears to me that it is the responsibility of SYSTRAY_WndProc() to keep track of the clicks, and create the doubleclick message. Does that sound reasonable?
Duane Clark dclark@akamail.com writes:
And just as a bit more info, under both WinNT and Wine, the systray gets the dual mouse down, mouse up sequence. The SYSTRAY_WndProc() function directly the posts messages to the app. So it appears to me that it is the responsibility of SYSTRAY_WndProc() to keep track of the clicks, and create the doubleclick message. Does that sound reasonable?
Something like this might help:
Index: dlls/shell32/systray.c =================================================================== RCS file: /opt/cvs-commit/wine/dlls/shell32/systray.c,v retrieving revision 1.19 diff -u -r1.19 systray.c --- dlls/shell32/systray.c 21 Nov 2002 23:56:42 -0000 1.19 +++ dlls/shell32/systray.c 24 Nov 2002 00:49:37 -0000 @@ -157,7 +157,7 @@ { WNDCLASSA wc;
- wc.style = CS_SAVEBITS; + wc.style = CS_SAVEBITS|CS_DBLCLKS; wc.lpfnWndProc = (WNDPROC)SYSTRAY_WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0;
And just as a bit more info, under both WinNT and Wine, the systray gets the dual mouse down, mouse up sequence. The SYSTRAY_WndProc() function directly the posts messages to the app. So it appears to me that it is the responsibility of SYSTRAY_WndProc() to keep track of the clicks, and create the doubleclick message. Does that sound reasonable?
Something like this might help: Index: dlls/shell32/systray.c
- wc.style = CS_SAVEBITS;
- wc.style = CS_SAVEBITS|CS_DBLCLKS;
I don't know about all the windows stuff but I'm not sure that this is the right place. I already had the same problem with a normal dialog. http://www.winehq.com/hypermail/wine-devel/2002/08/0192.html
and the "solution": http://www.winehq.com/hypermail/wine-devel/2002/09/0435.html
Looks like (almost) every item has the double clicks flag set in Windows but not in wine. So maybe a more general approach is needed.
Thanks
bye Fabi
Fabian Cenedese Cenedese@indel.ch writes:
I don't know about all the windows stuff but I'm not sure that this is the right place. I already had the same problem with a normal dialog. http://www.winehq.com/hypermail/wine-devel/2002/08/0192.html
and the "solution": http://www.winehq.com/hypermail/wine-devel/2002/09/0435.html
Looks like (almost) every item has the double clicks flag set in Windows but not in wine. So maybe a more general approach is needed.
Not really, we just need to make sure we have CS_DBLCLKS everywhere we need it. Does this fix your problem?
Index: windows/dialog.c =================================================================== RCS file: /opt/cvs-commit/wine/windows/dialog.c,v retrieving revision 1.110 diff -u -r1.110 dialog.c --- windows/dialog.c 22 Nov 2002 21:22:15 -0000 1.110 +++ windows/dialog.c 25 Nov 2002 18:24:08 -0000 @@ -102,7 +102,7 @@ const struct builtin_class_descr DIALOG_builtin_class = { DIALOG_CLASS_ATOM, /* name */ - CS_GLOBALCLASS | CS_SAVEBITS, /* style */ + CS_GLOBALCLASS | CS_SAVEBITS | CS_DBLCLKS, /* style */ DefDlgProcA, /* procA */ DefDlgProcW, /* procW */ DLGWINDOWEXTRA, /* extra */
I don't know about all the windows stuff but I'm not sure that this is the right place. I already had the same problem with a normal dialog. http://www.winehq.com/hypermail/wine-devel/2002/08/0192.html and the "solution": http://www.winehq.com/hypermail/wine-devel/2002/09/0435.html
Looks like (almost) every item has the double clicks flag set in
Windows but
not in wine. So maybe a more general approach is needed.
Not really, we just need to make sure we have CS_DBLCLKS everywhere we need it. Does this fix your problem?
RCS file: /opt/cvs-commit/wine/windows/dialog.c,v
- CS_GLOBALCLASS | CS_SAVEBITS, /* style */
- CS_GLOBALCLASS | CS_SAVEBITS | CS_DBLCLKS, /* style */
Yes, works fine, also when I remove my setting of the style. Thanks. And already committed... :)
bye Fabi
Alexandre Julliard wrote:
Duane Clark writes:
And just as a bit more info, under both WinNT and Wine, the systray gets the dual mouse down, mouse up sequence. The SYSTRAY_WndProc() function directly the posts messages to the app. So it appears to me that it is the responsibility of SYSTRAY_WndProc() to keep track of the clicks, and create the doubleclick message. Does that sound reasonable?
Something like this might help:
Yep, that fixed it.