http://bugs.winehq.org/show_bug.cgi?id=16127
Summary: Mouse Buttons do not work in BBC Basic For Windows 5.80a Product: Wine Version: 1.0.1 Platform: PC-x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: robert.goddard@freeuk.com
Created an attachment (id=17362) --> (http://bugs.winehq.org/attachment.cgi?id=17362) Short demo program written in the BBC Basic for Windows Language
See attached program written in the BBC Basic For Windows Language. Program previously worked in wine but now does not work. The specific problem is that wine is ignoring mouse clicks when the mouse pointer is on the screen but still allows the user to turn off the program with the standard close button.
BBC Basic for Windows is freely downloadable at
http://www.bbcbasic.co.uk/bbcwin/download.html
When the same program is run in BBC Basic for Windows installed in Windows it behaves as expected. When a left or right mouse button is pressed a colored dot is placed on the screen at the pointer tip.
Note that the program contains a subroutine to detect what environment it is running in, so that a workaround for the GetBoundsRect windows function not being implemented in wine comes into operation.This is a previously reported unresolved bug in wine.
Please let me know if you need more information.
http://bugs.winehq.org/show_bug.cgi?id=16127
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=16127
Andrew Nguyen arethusa26@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #1 from Andrew Nguyen arethusa26@gmail.com 2010-05-21 20:53:08 --- Commenting out the Wine detection routine makes the problem you describe appear in wine-1.2-rc1. Forcibly invalidating the display window makes the dots appear.
http://bugs.winehq.org/show_bug.cgi?id=16127
Andrew Nguyen arethusa26@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #17362|application/octet-stream |text/plain mime type| |
http://bugs.winehq.org/show_bug.cgi?id=16127
Richard Russell richard@rtrussell.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |richard@rtrussell.co.uk
--- Comment #2 from Richard Russell richard@rtrussell.co.uk 2010-06-20 04:46:30 --- (In reply to comment #1)
Commenting out the Wine detection routine makes the problem you describe appear in wine-1.2-rc1. Forcibly invalidating the display window makes the dots appear.
That's a different problem - the 'GetBoundsRect not implemented' bug ( http://bugs.winehq.org/show_bug.cgi?id=6878 ). The OP clearly states "Program previously worked in wine but now does not work" and "the program contains a ... workaround for the GetBoundsRect [bug]" so it appears to be a new problem unrelated to Bug 6878.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #3 from Richard Russell richard@rtrussell.co.uk 2010-06-22 04:31:10 --- I have confirmed that this problem is caused by a bug in BBC BASIC for Windows; it assumes that the GetAsyncKeyState API returns an INT rather than a SHORT. This appears to be true for all versions of Windows, but obviously BB4W should not assume it. I will ensure the next release includes a fix.
It would improve compatibility between Wine and Windows if the value returned from GetAsyncKeyState was cast to an INT, but it can't really be called a bug in Wine.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #4 from Juan Lang juan_lang@yahoo.com 2010-06-22 11:11:29 --- (In reply to comment #3)
I have confirmed that this problem is caused by a bug in BBC BASIC for Windows; it assumes that the GetAsyncKeyState API returns an INT rather than a SHORT. This appears to be true for all versions of Windows, but obviously BB4W should not assume it. I will ensure the next release includes a fix.
Wondering how that's an issue. The return value is in eax, so whether it's an int or a short is up to your interpretation.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #5 from Richard Russell richard@rtrussell.co.uk 2010-06-22 12:17:30 --- (In reply to comment #4)
Wondering how that's an issue. The return value is in eax, so whether it's an int or a short is up to your interpretation.
In Windows the return value is in eax but in Wine the return value is in ax (only); eax is *not* guaranteed to contain the sign-extended version of what's in ax. This appears to have changed only in a recent version of Wine (it may depend on how the compiler handles a return type of SHORT).
If your opinion is that Wine should be returning the result from GetAsyncKeyState in eax (despite being defined as type SHORT) then this really is a bug, because it's returning the result in ax.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #6 from Juan Lang juan_lang@yahoo.com 2010-06-22 12:33:07 --- (In reply to comment #5)
In Windows the return value is in eax but in Wine the return value is in ax (only); eax is *not* guaranteed to contain the sign-extended version of what's in ax. This appears to have changed only in a recent version of Wine (it may depend on how the compiler handles a return type of SHORT).
Okay, that's interesting. Are you sure it's changed in Wine? If so, a regression test might be of use. It might also be due to a change in gcc behavior: have you changed gcc versions while changing Wine versions?
http://bugs.winehq.org/show_bug.cgi?id=16127
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
--- Comment #7 from Bruno Jesus 00cpxxx@gmail.com 2011-09-12 22:04:42 CDT --- The test script works for me in 1.3.28. A white dot appears where I click, the same happens in Windows XP.
It seems that mouse clicks are captured correctly. Can anyone else retest?
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #8 from Richard Russell richard@rtrussell.co.uk 2011-09-13 04:27:18 CDT --- (In reply to comment #7)
The test script works for me in 1.3.28. A white dot appears where I click, the same happens in Windows XP. It seems that mouse clicks are captured correctly. Can anyone else retest?
Since this 'bug' was originally reported BBC BASIC for Windows has been fixed to correctly look at the sign of 'ax' rather than 'eax', so using a recent version of BB4W won't show up any issue, whether or not a sign-extension takes place in wine.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #9 from Bruno Jesus 00cpxxx@gmail.com 2011-09-13 05:34:36 CDT --- What version and method are proper for testing then?
I have tested the latest version and a randomly selected version from 2007 (5.50): http://web.archive.org/web/20070108174823/http://www.bbcbasic.co.uk/bbcwin/d...
Both draw the dots in the screen.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #10 from Richard Russell richard@rtrussell.co.uk 2011-09-13 06:56:48 CDT --- (In reply to comment #9)
What version and method are proper for testing then?
It has never been my opinion that this is a bug in wine at all; it was always a bug in BBC BASIC and that has now been fixed. If an API is declared to return a SHORT then the high 16-bits of the eax register should be ignored by the calling program.
It would appear that the wine behavior, at least in some versions and builds, is different from the Windows behavior in this respect. If that is thought to be an issue a test harness could be written to test it, but I'm not aware of any current applications that are affected by the difference.
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #11 from Bruno Jesus 00cpxxx@gmail.com 2011-09-13 21:10:02 CDT --- So can we mark this bug as fixed in your opinion? Can you retest and give your thoughts?
http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #12 from Richard Russell richard@rtrussell.co.uk 2011-09-14 17:08:37 CDT --- (In reply to comment #11)
So can we mark this bug as fixed in your opinion? Can you retest and give your thoughts?
That's not really my call, as I wasn't the original reporter. I don't know what the general attitude is to differences between Windows and Wine which become apparent only when an application 'breaks the rules' and incorrectly implements the documented API.
http://bugs.winehq.org/show_bug.cgi?id=16127
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED URL| |http://web.archive.org/web/ | |20070108174823/http://www.b | |bcbasic.co.uk/bbcwin/downlo | |ad.html CC| |focht@gmx.net Resolution|--- |FIXED
--- Comment #13 from Anastasius Focht focht@gmx.net --- Hello folks,
after reading comments resolving 'fixed'.
Regards
https://bugs.winehq.org/show_bug.cgi?id=16127
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #14 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.20.