Greetings, Monks
I have code simplified as:
$Win=Win32::GUI::Window->new( <blah>);
$tv=$Win->AddTreeView(
-onClick=> \&onClick_TreeView,
-onDblClick => \&onDblClick_TreeView,
-onRightClick => \&onRightClick,
<blah>
);
The problem is that Windows, being what it is,
always calls the single click function.
According to Microsoft
*, the single-click callback must wait 'DoubleClickTimeout' to see if the double-click callback
set a global variable
Ok...
Tests show that if
onClick_TreeView returns immediately, the
onDblClick_TreeView gets called.
But
If I make
onClick_TreeView wait 'DoubleClickTimeout' ms for that global variable, the Double-Click callback never happens.
Pretty sure its because it's all single-threaded.
Is there a
clean solution?
Ideally I'd like to have just missed a
-DontBeAnArseAboutDblClick common property,
But failing that, any best practice or common workarounds?
The solution recommended by Microsoft is to have the single-click callback set a timer to wait for a 2
nd click, or honour the single
Isn't that the OS's
JOB?
Anyway,
Thanks.
* https://docs.microsoft.com/en-us/dotnet/desktop/winforms/input-mouse/how-to-distinguish-between-clicks-and-double-clicks?view=netdesktop-5.0