HomePhabricator

Replace height buffer behavior while dragging on workboards with infinite…

Description

Replace height buffer behavior while dragging on workboards with infinite column height

Summary:
Ref T4900. The root problem is that dragging stuff near the bottom of the board can cause jittery, jumpy behaviors.

Internal scrolling has changed the nature of this problem. Previously, the height of the board itself would jump around, but it's now fixed so the height of columns jumps around instead.

We could take the same approach and add a chunk to the bottom of each column when a drag starts, but this is really distracting visually since it's obvious to the user.

Instead, treat columns as infinitely tall (so dragging beneath them still counts as dragging to the bottom position).

Test Plan:

  • View a board with a column taller than the screen (has a scrollbar).
  • Drag a card to near the bottom position.
  • Move the mouse down a little bit at a time, continuing toward the bottom of the page.
    • Before patch: at some point, UI flips out and starts rapidly adding, scrolling, and removing the ghost.
    • After patch: sensible behavior, ghost is in bottom position for all cursor locations.

Also works for dragging to the top.

(This leaves us with a little less dead space for cancelling drags, but you've still got the left menu, anything offscreen, and the escape key, which seems fine.)

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T4900

Differential Revision: https://secure.phabricator.com/D15227