+22
−22
Loading
Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more
Before P, if startDragAndDrop is invoked twice, the system goes to wired state
where:
* the system server keeps processing the first drag operation.
* the application loses the drag token but keeps the user local state.
* cancelDrag() no longer cancels the ongoing operation.
* DragEvents are still delivered with the user local state.
At P we unintentionally changed the behavior to:
* the system server keeps processing the first drag operation.
* the application loses the drag token and the user local state.
* cancelDrag() no longer cancels the ongoing operation.
* DragEvents are still delivered without the user local state.
The CL fixed the behavior so that the second startDragAndDrop() calls
does not affect the internal state of drag and drop as it's failed due
to existing ongoing operation.
* the system server keeps processing the first drag operation.
* the application keeps the drag token and the user local state.
* cancelDrag() is still able to cancel the ongoing operation.
* DragEvents are still delivered with the user local state.
Bug: 113310888
Test: Manually invoke startDragAndDrop() and ensures the user local
state delivered with DragEvents is not cleared.
Change-Id: I0a8315a44d655a8a73b7034f340e50e2f50601a8