gnome-shell/js
Sebastian Keller 0254b2ef6d windowPreview: Ignore leave events after being destroyed
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>
(cherry picked from commit 4bbf6d497d)
2023-04-25 08:07:57 +00:00
..
dbusServices screencastService: Handle case where no videos directory exists 2023-02-13 12:47:14 +01:00
gdm gdmUtil: Fix SignalTracker leak in ShellUserVerifier 2023-02-13 16:58:11 +01:00
misc misc/objectManager: Fix emission of object-removed signal 2023-04-25 08:07:57 +00:00
perf perf/basic: Toggle quick settings instead of old menu 2022-12-05 23:41:27 +01:00
portalHelper portalHelper: Switch to soup3-based WebKitGTK 2022-06-21 19:29:02 +00:00
ui windowPreview: Ignore leave events after being destroyed 2023-04-25 08:07:57 +00:00
js-resources.gresource.xml status/power: Merge with system indicator 2022-08-03 12:41:05 +00:00
meson.build extensions-app: Move Extensions app to new subproject 2020-03-27 23:33:30 +00:00
portal-resources.gresource.xml js/portal-resources: Add missing fileUtils to js path 2022-11-03 18:02:27 +00:00