diff options
author | Paul Gilbert | 2016-04-06 20:32:18 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-04-06 20:32:18 -0400 |
commit | e728e901d02aca51858f91ac29b1a177e5e80a07 (patch) | |
tree | 9c7f83f4c9219a997cc59bec783630c4b07fc623 /engines/titanic/core/view_item.cpp | |
parent | ac59f58c8a65e9e27a696da4536693c7d6ec6bc9 (diff) | |
download | scummvm-rg350-e728e901d02aca51858f91ac29b1a177e5e80a07.tar.gz scummvm-rg350-e728e901d02aca51858f91ac29b1a177e5e80a07.tar.bz2 scummvm-rg350-e728e901d02aca51858f91ac29b1a177e5e80a07.zip |
TITANIC: Fix for showing link cursors in some screens
Diffstat (limited to 'engines/titanic/core/view_item.cpp')
-rw-r--r-- | engines/titanic/core/view_item.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/titanic/core/view_item.cpp b/engines/titanic/core/view_item.cpp index c5cd77874b..098adc0c61 100644 --- a/engines/titanic/core/view_item.cpp +++ b/engines/titanic/core/view_item.cpp @@ -208,14 +208,15 @@ bool CViewItem::handleMessage(CMouseMoveMsg &msg) { } else { // Iterate through each link item, and if any is highlighted, // change the mouse cursor to the designated cursor for the item - CLinkItem *linkItem = dynamic_cast<CLinkItem *>(getFirstChild()); - while (linkItem) { - if (linkItem->_bounds.contains(msg._mousePos)) { + CTreeItem *treeItem = getFirstChild(); + while (treeItem) { + CLinkItem *linkItem = dynamic_cast<CLinkItem *>(treeItem); + if (linkItem && linkItem->_bounds.contains(msg._mousePos)) { screenManager->_mouseCursor->setCursor(linkItem->_cursorId); return true; } - linkItem = dynamic_cast<CLinkItem *>(linkItem->getNextSibling()); + treeItem = treeItem->getNextSibling(); } if (!handleMouseMsg(&msg, false)) @@ -252,10 +253,12 @@ bool CViewItem::handleMouseMsg(CMouseMsg *msg, bool flag) { for (int idx = (int)gameObjects.size() - 1; idx >= 0; ++idx) { if (gameObjects[idx]->_cursorId != CURSOR_ARROW2) { CScreenManager::_screenManagerPtr->_mouseCursor->setCursor(gameObjects[idx]->_cursorId); - return true; + break; } } } + if (gameObjects.size() == 0) + return false; bool result = false; for (int idx = (int)gameObjects.size() - 1; idx >= 0; --idx) { |