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.

(cherry picked from commit 8a772549d7def2c11598ed1ed6e5c510c68e2edd)
This commit is contained in:
Stephan Witt 2015-07-04 18:59:29 +02:00
parent a8bfb29eb2
commit b814639862
2 changed files with 6 additions and 4 deletions

View File

@ -2660,10 +2660,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;
}
}

View File

@ -260,6 +260,7 @@ What's new
- Don't repeatedly check for missing programs when reconfiguring.
- Backport of the fix for bug 9659 from master.
* DOCUMENTATION AND LOCALIZATION