4bbf6d497d
When a WindowPreview is being destroyed, the class default handler for the `destroy` signal is responsible for destroying its child actors. This happens after the emission of the `destroy` signal, i.e. after `WindowPreview::_onDestroy()` has been run. The destruction of the WindowPreview's child actors now triggers a re-pick, but due to WindowPreview having already being marked as `CLUTTER_IN_DESTRUCTION`, it will not be picked, resulting in a `leave` event if the cursor was on top of the WindowPreview at the time `destroy()` was called on it. So this leads to `WindowPreview::vfunc_leave_event()` being run after `WindowPreview::_onDestroy()`, which means the idle started by the leave event handler will not be removed and ends up accessing actors after they have already been destroyed. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5512 Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6065 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2738> |
||
---|---|---|
.. | ||
dbusServices | ||
gdm | ||
misc | ||
perf | ||
portalHelper | ||
ui | ||
js-resources.gresource.xml | ||
meson.build | ||
portal-resources.gresource.xml |