[Bug 22079] Right click menu doesn't appear in one section of ImgBurn's disc layout editor
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Jun 13 15:45:50 CDT 2011
--- Comment #9 from LIGHTNING UK! <lightning_uk at imgburn.com> 2011-06-13 15:45:50 CDT ---
Still present in 1.3.22.
If it helps anyone, I put this in an email to Nikolay (but didn't hear
I use the OnMouseDown event and the Windows API function called
After stepping through the VCL code it would appear the important bit of the
program 'flow' is as follows:
User right clicks the mouse
TControl.WMRButtonDown (calls 'inherited')
jumps to TWinControl.WMContextMenu (calls 'inherited')
jumps to TControl.WMContextMenu (calls 'TControl.DoContextPopup')
jumps to TControl.DoContextPopup (calls ListView's 'OnContextPopup' event)
jumps to control's 'OnContextPopup' event (runs my code - shows menu)
Once menu has been closed...
eventually returns to TControl.WMRButtonDown (calls 'TControl.DoMouseDown')
jumps to TControl.DoMouseDown (calls 'TControl.MouseDown')
jumps to TControl.MouseDown (calls ListView's 'OnMouseDown' event)
jumps to control's 'OnMouseDown' event (runs my code - the 'DragDetect'
So in Windows at least, my context menu code runs before anything
'MouseDown' (and therefore 'DragDetect') related.
That aside and for some weird reason, Wine's implementation of 'DragDetect'
seems to return 'true' even if the right mouse button was pressed (rather
than the left). Windows doesn't do that and it goes against the docs on MSDN
which only mention the left button. Even clicking my mouse's scroll
wheel/button can make Wine's DragDetect return 'true' - again, this doesn't
happen on Windows.
Under Wine, DragDetect returns true instantly if the left mouse button is
clicked in 'white space' (not on an item). There's no drag rectangle
(threshold) as mentioned in MSDN.
If the middle / right buttons were clicked (and held) in 'white space' then
it only returns 'true' after the mouse has been moved 1 pixel. It doesn't
even matter if you click and release the middle/right button, the second you
move the mouse 1 pixel is will register it as a drag event. Likewise, you
can click and release AND press escape before moving the mouse 1 pixel and
it still registers as a drag event.
If you left click (and hold) on an item, you have to move the mouse 1 pixel
before it registers as a drag event. Ditto for middle/right buttons.
I'm currently working with a version of the program that logs 'DragDetected'
in the Log window whenever 'DragDetect' returns true. If that makes
debugging/testing easier for you, I could send a new exe over?
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs