35fb221a7e
If the window wasn't in _windowSlots, the index is -1, so the last element of the array is removed, leading to https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3547 I logged the stack trace from removeWindow() and it seems that when you move the window from the second monitor to another workspace like shown in https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3547, removeWindow() is called twice for it, presumably once for the second monitor workspace, and then once for the first monitor workspace for some reason. It is during that call that _windowSlots doesn't contain the window, so instead the last element (index -1) is removed, leading to the animation bug. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1727>