obs: Remove draw callbacks when closing various windows

Fixes a race condition during shutdown where the dialogs aren't deleted
before another render attempt occurs, by which time the sources are
already freed, resulting in a crash.
This commit is contained in:
Richard Stanway 2016-04-20 20:29:03 +02:00
parent 92af243a27
commit ccf36b68fc
3 changed files with 9 additions and 0 deletions

View File

@ -394,6 +394,9 @@ void OBSBasicFilters::closeEvent(QCloseEvent *event)
if (!event->isAccepted())
return;
obs_display_remove_draw_callback (ui->preview->GetDisplay(),
OBSBasicFilters::DrawPreview, this);
main->SaveProject();
}

View File

@ -168,6 +168,9 @@ void OBSBasicInteraction::closeEvent(QCloseEvent *event)
width());
config_set_int(App()->GlobalConfig(), "InteractionWindow", "cy",
height());
obs_display_remove_draw_callback(ui->preview->GetDisplay(),
OBSBasicInteraction::DrawPreview, this);
}
static int TranslateQtKeyboardEventModifiers(QInputEvent *event, bool mouseEvent) {

View File

@ -205,6 +205,9 @@ void OBSBasicProperties::Cleanup()
width());
config_set_int(App()->GlobalConfig(), "PropertiesWindow", "cy",
height());
obs_display_remove_draw_callback(preview->GetDisplay(),
OBSBasicProperties::DrawPreview, this);
}
void OBSBasicProperties::reject()