Comment 4 for bug 1549582

Revision history for this message
Santiago (santileortiz) wrote :

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?.