1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 23:45:07 +00:00
serenity/Userland/Services/WindowServer
Tom 9f59d7d9a0 WindowServer: Fix animation crash
If an Animation's on_stop handler cleared itself inside the on_stop
event handler, it would remove itself from the animation map that was
still being iterated, leading to a crash.

To solve this, we'll iterate over the animations using the
remove_all_matching function, which enables us to delete it by simply
returning true when the animation finished. In the event that the
Animation is kept alive elsewhere and the on_stop event clears its own
reference, we need to temporarily bump the reference count. Another
advantage is that we only need to bump the reference count when an
animation is finished, whereas before this we bumped it
unconditionally.
2022-03-18 20:00:30 +01:00
..
Animation.cpp WindowServer: Fix animation crash 2022-03-18 20:00:30 +01:00
Animation.h WindowServer: Fix animation crash 2022-03-18 20:00:30 +01:00
AppletManager.cpp LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
AppletManager.h Services: Fix visibility of Object-derivative constructors 2021-11-02 22:56:53 +01:00
Button.cpp Everywhere: Rename left/right-click to primary/secondary 2021-10-27 22:05:58 +03:00
Button.h Everywhere: Rename left/right-click to primary/secondary 2021-10-27 22:05:58 +03:00
CMakeLists.txt Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
Compositor.cpp WindowServer: Fix animation crash 2022-03-18 20:00:30 +01:00
Compositor.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
ConnectionFromClient.cpp Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
ConnectionFromClient.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
Cursor.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Cursor.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Event.h Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
EventLoop.cpp Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
EventLoop.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
HitTestResult.h WindowServer: Make hit test results richer 2021-06-18 17:40:05 +02:00
KeymapSwitcher.cpp LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
KeymapSwitcher.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
main.cpp LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods 2022-02-16 19:49:41 -05:00
Menu.cpp WindowServer: Use font height for item heights in Menus 2022-03-14 22:29:57 +01:00
Menu.h WindowServer: Use font height for item heights in Menus 2022-03-14 22:29:57 +01:00
Menubar.cpp LibGUI, WindowServer: Greatly simplify menubar logic 2021-08-02 00:39:15 +02:00
Menubar.h WindowServer: Update menu buttons' rects on font change 2022-03-14 22:29:57 +01:00
MenuItem.cpp Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
MenuItem.h WindowServer: Fix a handful of clang-tidy warnings in the menu code 2021-05-09 15:47:21 +02:00
MenuManager.cpp Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
MenuManager.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
MultiScaleBitmaps.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
MultiScaleBitmaps.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Overlays.cpp WindowServer: Pick font with glyphs for digits for ScreenNumberOverlay 2022-01-17 02:10:09 +01:00
Overlays.h WindowServer: Add basic virtual desktop support 2021-07-03 12:27:23 +02:00
Screen.cpp LibGfx: Rename RGBA32 => ARGB32 2022-03-04 23:40:21 +01:00
Screen.h LibGfx: Rename RGBA32 => ARGB32 2022-03-04 23:40:21 +01:00
ScreenLayout.cpp WindowServer: Add API to set/get screen layouts 2021-06-20 14:57:26 +02:00
ScreenLayout.h LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
ScreenLayout.ipp LibCore+Everywhere: Return ErrorOr from ConfigFile::sync() 2022-02-16 19:49:41 -05:00
Window.cpp Userland: Change static const variables to static constexpr 2022-03-18 19:58:57 +01:00
Window.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
WindowClient.ipc Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
WindowFrame.cpp WindowServer: Treat window frames with a border radius as transparent 2022-03-02 21:56:57 +01:00
WindowFrame.h WindowServer: Make WindowFrame::shadow_bitmap() const 2021-11-14 12:23:04 +01:00
WindowManager.cpp WindowServer: Update menu buttons' rects on font change 2022-03-14 22:29:57 +01:00
WindowManager.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
WindowManagerClient.ipc LibGUI+WindowServer: Add new WMEvent Super+Digit 2022-02-24 18:57:20 +00:00
WindowManagerServer.ipc Everywhere: Replace "virtual desktop" => "workspace" 2021-11-13 12:48:43 +01:00
WindowServer.ipc WindowServer: Add IPC call to remove a menu's item 2022-02-21 16:31:56 +01:00
WindowStack.cpp WindowServer: Replace "Pin/Unpin Window" => "Always on Top" 2021-11-13 12:48:43 +01:00
WindowStack.h WindowServer: Replace "Pin/Unpin Window" => "Always on Top" 2021-11-13 12:48:43 +01:00
WindowSwitcher.cpp WindowServer: Skip over destroyed windows in WindowSwitcher::draw() 2021-12-25 10:41:06 +01:00
WindowSwitcher.h WindowServer: Make window switcher look more like other overlays 2021-11-14 12:23:04 +01:00
WindowType.h WindowServer: Add sanity checks to create_window IPC 2021-06-03 08:27:57 +02:00
WMConnectionFromClient.cpp Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
WMConnectionFromClient.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00