After the compositor exits the main loop in wl_display_run(), set the compositor state to SLEEPING. This prevents scheduling repaints, that will never be executed. A repaint is scheduled by calling wl_event_loop_add_idle(), which creates an idle event source. Normally the idle event source object is destroyed after it has been executed. However, in the shutdown case we never dispatch events again, and the object is leaked. This leak is triggered by shell.c destructor, which destroys the desktop-shell client. Destroying a client ends up calling wlsc_compositor_schedule_repaint() while destroying the client resources, especially surfaces. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>dev
parent
9cf5cc882d
commit
0135abee89
Loading…
Reference in new issue