1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 23:15:08 +00:00

LibGUI: Prevent multiple drag initiations while drag messages are passed

This commit is contained in:
AnotherTest 2020-11-08 05:25:40 +03:30 committed by Andreas Kling
parent e99c2261e3
commit a2cfb7eb94
2 changed files with 9 additions and 0 deletions

View file

@ -288,6 +288,14 @@ void AbstractView::mousemove_event(MouseEvent& event)
ASSERT(!data_type.is_null());
if (m_is_dragging)
return;
// An event might sneak in between us constructing the drag operation and the
// event loop exec at the end of `drag_operation->exec()' if the user is fast enough.
// Prevent this by just ignoring later drag initiations (until the current drag operation ends).
TemporaryChange dragging { m_is_dragging, true };
dbg() << "Initiate drag!";
auto drag_operation = DragOperation::construct();