Incompatible behavior regarding SetCapture/ReleaseCapture & dialogs
Andreas Rosenberg
sonix2003 at ctf-z.de
Mon Jul 7 13:59:06 CDT 2008
Hi all!
About 3 years ago, I reported a few incompatiblities in Wine, that caused problems
with an application called IQ-FMEA, that our company is developing.
Some things I could fix myself and sent them to wine-patches and they were accepted.
One incompatibility between Windows & Wine is still there and causes problems
in our app when operating various dialogs (most important the common file dialog, because
this happens frequently).
To demonstrate the problem, I wrote a small app. It may be included into the
conformance test library, but it's a little bit tricky, so I'm unsure how to do something
like this.
Scenario:
Two windows A and B exist.
- Window B captures the mouse input.
- Window A opens the CommonFileDialog (GetOpenFileName,GetSaveFileName, ChooseFont)
- during the open process of the CommonFileDialog the mouse capture
is released on Windows (between the 2nd & the 3rd WM_NOTIFY being
passed to the OFNHookProc).
The dialog is automatically closed by the hook proc, by posting
WM_COMMAND with IDCANCEL.
On Wine the mouse capture is not release, making it impossible
to operate the dialog with the mouse.
The same scenario may happen with ChooseFont (and probably
more dialog windows).
log output of my test app on Windows XP:
Testing GetOpenFileName
Wnd with capture:000201fe
WM_INITDIALOG:000201fe
WM_NOTIFY:000201fe - fffffda7 - (0)
WM_NOTIFY:000201fe - fffffda5 - (1)
WM_NOTIFY:00000000 - fffffda6 - (2)
Quitting dialog
Wnd with capture:00000000
Testing ChooseFont
Wnd with capture:000201fe
WM_INITDIALOG:000201fe
WM_CTLCOLORDLG:00000000 - (0)
Quitting dialog
Wnd with capture:00000000
log output of my test app on Wine 1.1.0 (for OpenSuse 10.3)
Testing GetOpenFileName
Wnd with capture:0001002a
WM_INITDIALOG:0001002a
WM_NOTIFY:0001002a - fffffda7 - (0)
WM_NOTIFY:0001002a - fffffda5 - (1)
WM_NOTIFY:0001002a - fffffda6 - (2)
CommonFileDialog - mouse capture should have been released now!
Quitting dialog
Wnd with capture:0001002a
Testing ChooseFont
Wnd with capture:0001002a
WM_INITDIALOG:0001002a
WM_CTLCOLORDLG:0001002a - (0)
ChooseFontDialog - mouse capture should have been released now!
Quitting dialog
Wnd with capture:0001002a
Maybe someone being more familiar with the internal framework can take a look into this problem.
Regards,
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/octet-stream
Size: 20230 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20080707/ad9c29c4/attachment-0001.obj
More information about the wine-devel
mailing list