diff options
author | Matthew Hoops | 2010-01-27 16:54:58 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-01-27 16:54:58 +0000 |
commit | 12569a5f325b2cdbcf3d696329a105ef5b94fd8a (patch) | |
tree | 238d55cb88cb134aaae841ea2af36428f2bef045 | |
parent | 1ddcd178c206889f051bc07ae7fd8d4ef9368233 (diff) | |
download | scummvm-rg350-12569a5f325b2cdbcf3d696329a105ef5b94fd8a.tar.gz scummvm-rg350-12569a5f325b2cdbcf3d696329a105ef5b94fd8a.tar.bz2 scummvm-rg350-12569a5f325b2cdbcf3d696329a105ef5b94fd8a.zip |
Only reshow the cursor after playing a video if it was originally showing beforehand. This fixes the GK1 demo menu.
svn-id: r47602
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 9 | ||||
-rw-r--r-- | engines/sci/graphics/gui.cpp | 4 | ||||
-rw-r--r-- | engines/sci/graphics/gui.h | 1 |
3 files changed, 12 insertions, 2 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index d58809f578..543aebb857 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -1030,7 +1030,11 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { if (argc == 1) return NULL_REG; - s->_gui->hideCursor(); + // Hide the cursor if it's showing and then show it again if it was + // previously visible. + bool reshowCursor = s->_gui->isCursorVisible(); + if (reshowCursor) + s->_gui->hideCursor(); // The Windows and DOS versions use different video format as well // as a different argument set. @@ -1072,7 +1076,8 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { if (playedVideo) s->_gui->syncWithFramebuffer(); - s->_gui->showCursor(); + if (reshowCursor) + s->_gui->showCursor(); return s->r_acc; } diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp index 31716979a9..74e3e37659 100644 --- a/engines/sci/graphics/gui.cpp +++ b/engines/sci/graphics/gui.cpp @@ -788,6 +788,10 @@ void SciGui::showCursor() { _cursor->show(); } +bool SciGui::isCursorVisible() { + return _cursor->isVisible(); +} + void SciGui::setCursorShape(GuiResourceId cursorId) { _cursor->setShape(cursorId); } diff --git a/engines/sci/graphics/gui.h b/engines/sci/graphics/gui.h index 56905619f8..e77d24c8ce 100644 --- a/engines/sci/graphics/gui.h +++ b/engines/sci/graphics/gui.h @@ -132,6 +132,7 @@ public: void hideCursor(); void showCursor(); + bool isCursorVisible(); void setCursorShape(GuiResourceId cursorId); void setCursorView(GuiResourceId viewNum, int loopNum, int cellNum, Common::Point *hotspot); virtual void setCursorPos(Common::Point pos); |