Set DoubleClickInterval very low!
Richard Gaskin
ambassador at fourthworld.com
Wed Aug 3 20:35:23 EDT 2016
Mark Waddingham wrote:
> On 2016-08-04 01:32, Sannyasin Brahmanathaswami wrote:
>> How is it a bug? logically the engine must wait for the double click
>> interval before responding or double clicks could never be passed?
>> N'est ce pas?
>
> No - that isn't how double clicks work in LiveCode.
I think LC's implementation is similar to how most OSes handle it, at
least judging from the old Inside Mac details on click interval and slop
rect, and the XP refs I used to read.
Given that, I'm not sure we need to have you spend time away from other
tasks to explore this:
> This is a long standing (i.e. forever!) 'the way things work' in
> LiveCode - although I think there is a way it could be a great deal
> better, and more intuitive.
>
> The only use of multi-click 'gestures' (which is what 'double clicks'
> are) which makes sense from a UI interaction point of view is where
> each
> click builds upon the action of the previous one.
>
> e.g. In Finder:
>
> 1) The first click selects a file
> 2) The second click runs the file (which is already selected at
> this point)
>
> e.g. In Text Editors:
>
> 1) The first click places the caret
> 2) The second click selects the word the caret is in
> 3) The third click selects the line the word is in
Those are both very good examples of the noun+verb interaction model for
applying commands to object in WOMPs, which personally I feel is
reasonably well supported in LC as it is.
In brief, we first select an object (noun), and then perform an action
on it (verb).
Often the action is a command chosen from a menu, which would then act
on whatever we'd selected. But sometimes a shortcut is provided for a
menu action, such as in these examples with a second click.
In practice it's extremely rare that we find any object that truly
supports different actions on both single and double-clicks.
The Finder example *seems* at first glance like such a case, but as we
think about it more it becomes clear that no action ever takes place on
the first click, it's always just a selection; the second click is the
action, and which action it is will depend on the time/space constraints
from the first click.
Given all this, there may be other benefits to the proposed enhancements
you outlined, but so far it seems all practical needs for supporting
single- and double-clicks have been handled well with LC's current mouse
messages.
Indeed, for the rare case when one truly wants a single object to
support actions on both single- and double-clicks, we've seen examples
from the readers here of how we can keep track of the time between
clicks to support even that edge case.
Whether we keep track of the interval or the click count makes no
difference to me, but with the latter we'd still need to maintain an
awareness of the interval anyway, and best of all the current model is
already done and ready to use. :)
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list