Skip to content

macos: Drag and drop should not freeze applications

Arjan Molenaar requested to merge amolenaar/gtk:macos-stable-dnd into main

macos

This MR proposes a patch that avoids hanging UI's on macOS.

Problem

When (accidentally) starting a DnD operation, the UI will freeze.

Solution

It looks like the freeze is partially due to grabbed seats not being released. Now, seats are released as soon as the DnD operation is over.

The Drag surface is not referencing it's parent. Therefore, during creation we should not provide a parent since that will cause the service to be initialized with the parent's frame clock. The frame clock is destroyed on destruction of the drag surface.

This MR is only ment to stop the UI from freezing. DnD itself needs some more work.

@chergert?

Edited by Arjan Molenaar

Merge request reports