Safeguard plugin window deletion when closing the session

..otherwise it may happen that the idle-signal arrives after
the window has already been destroyed.
This commit is contained in:
Robin Gareus 2022-11-02 16:23:33 +01:00
parent 8857abc028
commit cb548ede3d
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
1 changed files with 3 additions and 0 deletions

View File

@ -4720,6 +4720,7 @@ void
ProcessorWindowProxy::processor_going_away ()
{
gui_connections.drop_connections ();
_unmap_connection.disconnect ();
delete _window;
_window = 0;
WM::Manager::instance().remove (this);
@ -4777,7 +4778,9 @@ ProcessorWindowProxy::get (bool create)
if (_window && (is_custom != want_custom)) {
/* drop existing window - wrong type */
set_state_mask (Gtkmm2ext::WindowProxy::StateMask (state_mask () & ~WindowProxy::Size));
_unmap_connection.block ();
drop_window ();
_unmap_connection.unblock ();
}
if (!_window) {