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:
parent
8857abc028
commit
cb548ede3d
@ -4720,6 +4720,7 @@ void
|
|||||||
ProcessorWindowProxy::processor_going_away ()
|
ProcessorWindowProxy::processor_going_away ()
|
||||||
{
|
{
|
||||||
gui_connections.drop_connections ();
|
gui_connections.drop_connections ();
|
||||||
|
_unmap_connection.disconnect ();
|
||||||
delete _window;
|
delete _window;
|
||||||
_window = 0;
|
_window = 0;
|
||||||
WM::Manager::instance().remove (this);
|
WM::Manager::instance().remove (this);
|
||||||
@ -4777,7 +4778,9 @@ ProcessorWindowProxy::get (bool create)
|
|||||||
if (_window && (is_custom != want_custom)) {
|
if (_window && (is_custom != want_custom)) {
|
||||||
/* drop existing window - wrong type */
|
/* drop existing window - wrong type */
|
||||||
set_state_mask (Gtkmm2ext::WindowProxy::StateMask (state_mask () & ~WindowProxy::Size));
|
set_state_mask (Gtkmm2ext::WindowProxy::StateMask (state_mask () & ~WindowProxy::Size));
|
||||||
|
_unmap_connection.block ();
|
||||||
drop_window ();
|
drop_window ();
|
||||||
|
_unmap_connection.unblock ();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_window) {
|
if (!_window) {
|
||||||
|
Loading…
Reference in New Issue
Block a user