aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarshallnz <jmarshallnz@svn>2010-12-06 07:28:26 +0000
committerjmarshallnz <jmarshallnz@svn>2010-12-06 07:28:26 +0000
commit60e37d1656ec8d58c967b8feab7c50fbbd4a09e9 (patch)
tree4e5ae1c50fb0c77717c4dbd077bbd269cac2f104
parent17909dd6ebfdecd1ab5acea494d51f29bdc13784 (diff)
fixed: #10841 - Control.SetFocus(id,position) failed for position > items.size()
(cherry picked from commit 3fc4ef73814f62bce7f619487ffa6e87ad30be01) git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/Dharma@35582 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r--guilib/GUIListContainer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/guilib/GUIListContainer.cpp b/guilib/GUIListContainer.cpp
index f37fc7e930..306f9ce7a6 100644
--- a/guilib/GUIListContainer.cpp
+++ b/guilib/GUIListContainer.cpp
@@ -126,7 +126,10 @@ bool CGUIListContainer::OnMessage(CGUIMessage& message)
else if (message.GetMessage() == GUI_MSG_SETFOCUS)
{
if (message.GetParam1()) // subfocus item is specified, so set the offset appropriately
- m_cursor = (int)message.GetParam1() - 1;
+ {
+ int item = std::min(m_offset + (int)message.GetParam1() - 1, (int)m_items.size() - 1);
+ SelectItem(item);
+ }
}
}
return CGUIBaseContainer::OnMessage(message);