@ -42,4 +42,9 @@ bool VideoWidget::update()
return mPlayer.isPlaying();
}
void VideoWidget::cleanup()
{
mPlayer.close();
@ -26,6 +26,9 @@ namespace MWGui
/// @return Is the video still playing?
bool update();
/// Free video player resources (done automatically on destruction)
void cleanup();
private:
bool mAllowSkipping;
@ -1576,12 +1576,13 @@ namespace MWGui
bool cursorWasVisible = mCursorVisible;
setCursorVisible(false);
while (mVideoWidget->update())
while (mVideoWidget->update() && !MWBase::Environment::get().getStateManager()->hasQuitRequest())
MWBase::Environment::get().getInputManager()->update(0, true, false);
mRendering->getWindow()->update();
mVideoWidget->cleanup();
setCursorVisible(cursorWasVisible);