Fixed crash on closing second window

see issue 1113
This commit is contained in:
Oliver Duis
2011-11-24 08:04:44 +01:00
parent 38dfe4adae
commit f77087e734

View File

@@ -186,10 +186,24 @@ void EditWindow::toggleFullscreen () {
} }
bool EditWindow::on_delete_event(GdkEventAny* event) { bool EditWindow::on_delete_event(GdkEventAny* event) {
for ( std::set <Glib::ustring>::iterator iter = filesEdited.begin(); iter != filesEdited.end();iter++ ) { // Check if any editor is still processing, and do NOT quit if so. Otherwise crashes and inconsistent caches
remEditorPanel(epanels[*iter]); bool isProcessing=false;
for ( std::set <Glib::ustring>::iterator iter = filesEdited.begin(); iter != filesEdited.end() && !isProcessing; iter++ ) {
if (epanels[*iter]->getIsProcessing()) isProcessing=true;
} }
if (isProcessing) return false;
for ( std::set <Glib::ustring>::iterator iter = filesEdited.begin(); iter != filesEdited.end(); iter++ )
mainNB->remove_page (*epanels[*iter]);
epanels.clear();
filesEdited.clear();
parent->fpanel->refreshEditedState (filesEdited);
hide (); hide ();
return true; return true;
} }