← Back to team overview

ubuntu-sdk-bugs team mailing list archive

[Bug 1459362] [NEW] DirectionalDragArea lets a long press event through when a drag is detected

 

You have been subscribed to a public bug:

I recently build a branch of lp:webbrowser-app with the latest code drop
for DirectionalDragArea from lp:unity8. The branch is there: lp:~osomon
/webbrowser-app/update-dda.

The DDA is used to detect a bottom edge drag over a WebView component,
and display the tabs view accordingly. This works well, but often when a
drag is detected the WebView under it gets a long press event, thus
triggering the selection mechanism that it implements.

According to Daniel with whom I discussed the issue prior to filing this
bug:

> Yes, the recognition parameters (and algorithm) were changed a bit.
> So it's perfectly possible that what you consider a long press (don't
> know how many milliseconds of pressed are needed for that) can happen
> before the DirectionalDragArea reaches a decision on whether the gesture
> is a directional drag gesture or not.

The threshold duration for a long press to be detected by the WebView is
500ms.

I’ve rebuilt my branch with DIRECTIONALDRAGAREA_DEBUG set to 1, and here
is what I’m seeing when observing the issue:

[DDA()] 10035 TouchBegin (id:8, state:pressed, scenePos:(268.503,917.002)) 
[DDA()] WaitingForTouch -> Undecided
[DDA()] Unowned 10072 TouchUpdate (id:8, state:moved, scenePos:(268.503,917.002)) 
[DDA()] Sill within composition window. Let's wait more.
[DDA()] Unowned 10089 TouchUpdate (id:8, state:moved, scenePos:(268.503,917.002)) 
[DDA()] Sill within composition window. Let's wait more.
[DDA()] Unowned 10106 TouchUpdate (id:8, state:moved, scenePos:(268.503,917.002)) 
[DDA()]  movedFarEnoughAlongGestureAxis: scalarProjection=0, distanceThreshold=15.748
[DDA()] Didn't move far enough yet. Let's wait more.
[DDA()] Unowned 10123 TouchUpdate (id:8, state:moved, scenePos:(267.006,911.008)) 
[DDA()]  movedFarEnoughAlongGestureAxis: scalarProjection=2.05677, distanceThreshold=15.748
[DDA()] Didn't move far enough yet. Let's wait more.
[DDA()] Unowned 10139 TouchUpdate (id:8, state:moved, scenePos:(267.505,891.706)) 
[DDA()]  movedFarEnoughAlongGestureAxis: scalarProjection=21.3591, distanceThreshold=15.748
[DDA()] grabbing touch
[DDA()] Undecided -> Recognized
[DDA()] 10150 TouchUpdate (id:8, state:moved, scenePos:(267.505,891.706)) 
[DDA()] 10186 TouchUpdate (id:8, state:moved, scenePos:(268.503,845.866)) 
[DDA()] 10215 TouchUpdate (id:8, state:moved, scenePos:(270.853,799.68)) 
[DDA()] 10238 TouchUpdate (id:8, state:moved, scenePos:(271.996,774.151)) 
[DDA()] 10248 TouchUpdate (id:8, state:moved, scenePos:(272.212,747.697)) 
[DDA()] 10260 TouchUpdate (id:8, state:moved, scenePos:(274.196,721.618)) 
[DDA()] 10288 TouchUpdate (id:8, state:moved, scenePos:(275.736,663.346)) 
[DDA()] 10345 TouchUpdate (id:8, state:moved, scenePos:(278.203,582.836)) 
[DDA()] 10465 TouchUpdate (id:8, state:moved, scenePos:(280.481,432.403)) 
[DDA()] 10483 TouchUpdate (id:8, state:moved, scenePos:(281.486,382.402)) 
[DDA()] 10501 TouchUpdate (id:8, state:moved, scenePos:(282.613,359.847)) 
[DDA()] 10522 TouchUpdate (id:8, state:moved, scenePos:(283.838,335.342)) 
[DDA()] 10532 TouchUpdate (id:8, state:moved, scenePos:(284.972,311.133)) 
[DDA()] 10545 TouchUpdate (id:8, state:moved, scenePos:(286.124,288.236)) 
[DDA()] 10590 TouchUpdate (id:8, state:moved, scenePos:(287.307,265.747)) 
[DDA()] 10600 TouchUpdate (id:8, state:moved, scenePos:(288.466,228.588)) 
[DDA()] 10601 TouchEnd (id:8, state:released, scenePos:(288.466,228.588)) 
[DDA()] Recognized -> WaitingForTouch

Let me know if I can provide more useful information.

** Affects: oxide
     Importance: Undecided
         Status: New

** Affects: ubuntu-ui-toolkit (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: webbrowser-app (Ubuntu)
     Importance: High
     Assignee: Olivier Tilloy (osomon)
         Status: New

-- 
DirectionalDragArea lets a long press event through when a drag is detected
https://bugs.launchpad.net/bugs/1459362
You received this bug notification because you are a member of Ubuntu SDK bug tracking, which is subscribed to ubuntu-ui-toolkit in Ubuntu.