← Back to team overview

touch-packages team mailing list archive

[Bug 1459362] Re: SwipeArea lets touch events through before a drag is detected

 

Simply sending it a TouchEnd is not the way to go as it would tell
WebView that the touch sequence belongs to it and that it should commit
whatever UI changes this touch sequence caused to it.

If SwipeArea grabbed the touch, WebView should undo whatever changes
that were caused by that touch.

To me it looks like WebView doesn't handle a touch point being grabbed
from it and is thus left in a bad state.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to ubuntu-ui-toolkit in
Ubuntu.
https://bugs.launchpad.net/bugs/1459362

Title:
  SwipeArea lets touch events through before a drag is detected

Status in Oxide:
  New
Status in ubuntu-ui-toolkit package in Ubuntu:
  New
Status in webbrowser-app package in Ubuntu:
  New

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/oxide/+bug/1459362/+subscriptions


References