HomePhabricator

Fix three issues with scrolling while dragging items (e.g., on workboards)

Description

Fix three issues with scrolling while dragging items (e.g., on workboards)

Summary:
Fixes T5979. There are three issues here:

  • We cache document positions when you pick an item up, but don't recalculate them after you scroll, so they get out of date. Dirty the cache when the user scrolls.
  • When we rebuild the cache during a drag (previously, this never happened), the position of the object you're dragging is computed wrong (since it has been moved to be under the cursor). Adjust the effective position of the object you've picked up to put it back in the right place in the list.
  • When you fiddle around at the bottom of a column you can get jumpy redraws as the height adjusts. Put min-height on the container during a drag to prevent this.

Test Plan: In Safari, Chrome and Firefox, dragged items around on columns before and after scrolling the workboard panel.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T5979

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