DataGrid 2 swipe actions

Mark Waddingham mark at livecode.com
Thu Aug 27 14:16:35 EDT 2020


On 2020-08-27 17:07, Mike Kerner via use-livecode wrote:
> name's mikey.  y'all can call me...
> mikey
> 
> howdy.
> 
> i think it was just one line of code, too, right?  it was just a matter 
> of
> setting the delayTouches to true.  i have no idea why it was originally
> "false".

Well, the advantage of generally trying to make sure all substantive 
changes made to the source have well structured commit titles and decent 
descriptions in the body means its easy to find out by grokking `git 
log` :D

It was changed precisely because of the issues Andrew pointed out with 
DG2, specifically in this commit:

commit ac1beee1dd113e203b6715fe472cf2fa88656bd5
Author: Michael McCreary <michael.mccreary at runrev.com>
Date:   Thu Dec 21 12:49:26 2017 +0000

     [[ DataGrid 2 ]] Fix drags to cooperate with the mobile scroller.

     Previously, a data grid's mobile scroller was getting in the way of
     reorder and swipe actions.

     To fix for reordering, we disable the scroller whenn the user clicks
     on a reorder control (and re-enable it when the reorder completes).

     Swipes are a little trickier. We track dragging on mouse down, but
     disabling the scroller at this point will prevent all scrolling.
     Instead we attempt to determine if the user is trying to drag the
     row before disabling the scroller.

I'd need to do some more digging to see if the highlight on touch has 
actually been caused by something else since  as I don't recall it being 
an issue, or noticed when DG2 debuted - but I could be wrong. Especially 
more since Android has never had a delayTouches mode.

Either this problem also affects Android, which means turning 
delayTouches on is not really an option (given the negative consequences 
to DG2 behavior); or it doesn't affect Android in which case something 
else has changed (potentially in the iOS scroller control itself).

I suspect we will just need a short timer on mouse down so that it only 
triggers a highlight *if* a scroll message isn't received within the 
interval of the timer.

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list