Closed Bug 1651149 Opened 5 years ago Closed 5 years ago

2 finger touchpad scrolling stops working with desktop zooming

Categories

(Core :: Panning and Zooming, defect, P3)

Desktop
Windows 10
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: ktaeleman, Unassigned)

References

Details

Unknown repro steps

Sometimes 2 finger scrolling stops working. After pinch zooming in/out scrolling starts working again.

Summary: 2 finger touchpad scrolling stops working → 2 finger touchpad scrolling stops working with desktop zooming

I wonder if the direct manipulation state machine is getting confused?

I can try adding some logging using moz_log for that, or you could try setting the direct manip pref to false again and see if it happens. Although that will of course disable pinch zooming on your touchpad.

I haven't seen it happen again in the last couple of days. I'll let you know if I see it again.
If I see it again I can attach the debugger and check some states if you point me to some potential spots this could go wrong.

When you start a two finger pan this is the sequence I would expect:

  1. A call to DManipEventHandler::OnViewportStatusChanged with the direct manipulation status as DIRECTMANIPULATION_RUNNING

  2. A call to DManipEventHandler::OnContentUpdated with a new xoffset and yoffset so that we call TransitionToState(State::ePanning), and then hit the mShouldSendPanStart case and call SendPan(Phase::eStart...)

  3. A call to DManipEventHandler::TransitionToState to be called to move us from mState == eNone to ePanning.

  4. Further calls to DManipEventHandler::OnContentUpdated that call SendPan in the !mShouldSendPanStart case

  5. DManipEventHandler::OnViewportStatusChanged with status DIRECTMANIPULATION_INERTIA

  6. DManipEventHandler::OnViewportStatusChanged with status DIRECTMANIPULATION_READY

Can't reproduce this anymore and only saw this once.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.