Fix not reacting to quit request while video is playing

deque
scrawl 11 years ago
parent c0f1449004
commit cefa20bfb9

@ -42,4 +42,9 @@ bool VideoWidget::update()
return mPlayer.isPlaying(); return mPlayer.isPlaying();
} }
void VideoWidget::cleanup()
{
mPlayer.close();
}
} }

@ -26,6 +26,9 @@ namespace MWGui
/// @return Is the video still playing? /// @return Is the video still playing?
bool update(); bool update();
/// Free video player resources (done automatically on destruction)
void cleanup();
private: private:
bool mAllowSkipping; bool mAllowSkipping;

@ -1576,12 +1576,13 @@ namespace MWGui
bool cursorWasVisible = mCursorVisible; bool cursorWasVisible = mCursorVisible;
setCursorVisible(false); setCursorVisible(false);
while (mVideoWidget->update()) while (mVideoWidget->update() && !MWBase::Environment::get().getStateManager()->hasQuitRequest())
{ {
MWBase::Environment::get().getInputManager()->update(0, true, false); MWBase::Environment::get().getInputManager()->update(0, true, false);
mRendering->getWindow()->update(); mRendering->getWindow()->update();
} }
mVideoWidget->cleanup();
setCursorVisible(cursorWasVisible); setCursorVisible(cursorWasVisible);

Loading…
Cancel
Save