The problem is the C structure member window.monitor, should be a pointer to a monitor, but after closing the window Mutter's event handler calls meta_window_unmanage() which sets window.monitor=NULL, then we try to dereference it because window.get_monitor() just tries to return window->monitor->number without checking that window.monitor!=NULL.
The only thing we need is to check if window is being unmanaged and skip it, but I don't know how to do this because window.monitor is private and there is no way of accessing it through libmutter.vapi. The unmanaged() signal on the Meta.Window class is emmited on Mutter by meta_window_unmanage() at the end, so I don't think this will work either but I haven't tried it. Any ideas on how can we solve this?.
The problem is the C structure member window.monitor, should be a pointer to a monitor, but after closing the window Mutter's event handler calls meta_window_ unmanage( ) which sets window. monitor= NULL, then we try to dereference it because window. get_monitor( ) just tries to return window- >monitor- >number without checking that window. monitor! =NULL.
The only thing we need is to check if window is being unmanaged and skip it, but I don't know how to do this because window.monitor is private and there is no way of accessing it through libmutter.vapi. The unmanaged() signal on the Meta.Window class is emmited on Mutter by meta_window_ unmanage( ) at the end, so I don't think this will work either but I haven't tried it. Any ideas on how can we solve this?.