Fix a bug that effectively disallows hiding surfaces.

InputMonitor checks DragDropController and TaskPositioningController's
state to decide if it should show or hide respective surface. However
when InputMonitor checks the status when stopping
drag-resizing/drag-and-drop, the status is not yet changed because
TaskPositioner/DragState instance isn't cleared yet.

Therefore this CL clears TaskPositioning before updating InputWindow,
and flags the closing state in DragState to avoid surface leak.

Bug: 120289807
Test: Drag-resize works with a workaround to another race condition.
Change-Id: I743d0a97c937b9d6a06c70d42da34cc77822cd58
3 files changed