Skip to content

Lock action-pane intent for a continuous drag until neutral settle #546

@lukemmtt

Description

@lukemmtt

Summary

A continuous drag can currently switch from one action pane to the other after crossing back through neutral in the same interaction.

Repro

  1. Open a slidable with both start and end panes.
  2. Drag far enough to infer one pane.
  3. Without releasing, reverse direction past neutral.

Before: the opposite pane activates during one continuous drag

Current behavior

The originally inferred pane can disappear and the opposite pane can become active mid-drag.

Expected behavior

Drawer intent should be inferred once for the interactive drag lifecycle, then stay locked until the user releases and the slidable settles back at neutral.

Dragging past neutral during that same interaction should only show a small resisted rubber-band offset, not activate the opposite pane.

If the user releases from that overscrolled state, the child should animate back to neutral rather than jump.

Here's an example of the desired behavior, as seen from the Apple Notes app:

Before: the opposite pane activates during one continuous drag

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions