Fixed crash on closing second window
see issue 1113
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user