commit 8a772549d7def2c11598ed1ed6e5c510c68e2edd
Author: Stephan Witt <[email protected]>
Date: Sat Jul 4 18:59:29 2015 +0200
Fix for #9659 - Qt may send more then one close event to a window.
Therefore multiple calls to unregisterView for a GuiView are possible. The
first one removes the view from the list of known views, subsequent calls do
nothing.
diff --git a/src/frontends/qt4/GuiApplication.cpp
b/src/frontends/qt4/GuiApplication.cpp
index 8bd22c8..fc96995 100644
--- a/src/frontends/qt4/GuiApplication.cpp
+++ b/src/frontends/qt4/GuiApplication.cpp
@@ -2735,10 +2735,11 @@ void GuiApplication::commitData(QSessionManager & sm)
void GuiApplication::unregisterView(GuiView * gv)
{
- LAPPERR(d->views_[gv->id()] == gv);
- d->views_.remove(gv->id());
- if (current_view_ == gv)
- current_view_ = 0;
+ if(d->views_.contains(gv->id()) && d->views_.value(gv->id()) == gv) {
+ d->views_.remove(gv->id());
+ if (current_view_ == gv)
+ current_view_ = 0;
+ }
}