Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WorkspaceSwitcherPopup: destroy WorkspaceThumbnail objects
WorkspaceThumbnail objects must be explicitly destroy()ed, otherwise they will not be garbage collected. Furthermore, each such object subscribes to the "window-{left,entered}-monitor" signal of the particular MetaDisplay. Thus leaking these thumbnails causes those signals to have a very large number of subscribers after the popup has been shown a sufficient number of times. This shows up in profiling, and also causes stuttering when a window is moved between monitors or created. For example, with 4*4=16 workspaces on 3 monitors, every time the popup is shown 48 new subscribers are added to both signals. After a couple days of uptime, there may be thousands. Fix that by destroying the WorkspaceThumbnail objects in `_onDestroy()`.
- Loading branch information