return Toolkit::Control::DownCast(parent);
}
-bool KeyboardFocusManager::MoveFocus(Toolkit::Control::KeyboardFocus::Direction direction)
+bool KeyboardFocusManager::MoveFocus(Toolkit::Control::KeyboardFocus::Direction direction, const std::string& deviceName)
{
Actor currentFocusActor = GetCurrentFocusActor();
if(mCustomAlgorithmInterface)
{
mIsWaitingKeyboardFocusChangeCommit = true;
- nextFocusableActor = mCustomAlgorithmInterface->GetNextFocusableActor(currentFocusActor, Actor(), direction);
+ nextFocusableActor = mCustomAlgorithmInterface->GetNextFocusableActor(currentFocusActor, Actor(), direction, deviceName);
mIsWaitingKeyboardFocusChangeCommit = false;
}
else if(!mPreFocusChangeSignal.Empty())
void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
{
- std::string keyName = event.GetKeyName();
+ const std::string& keyName = event.GetKeyName();
+ const std::string& deviceName = event.GetDeviceName();
if(mIsFocusIndicatorShown == UNKNOWN)
{
else
{
// Move the focus towards left
- MoveFocus(Toolkit::Control::KeyboardFocus::LEFT);
+ MoveFocus(Toolkit::Control::KeyboardFocus::LEFT, deviceName);
}
isFocusStartableKey = true;
else
{
// Move the focus towards right
- MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT);
+ MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT, deviceName);
}
isFocusStartableKey = true;
else
{
// Move the focus towards up
- MoveFocus(Toolkit::Control::KeyboardFocus::UP);
+ MoveFocus(Toolkit::Control::KeyboardFocus::UP, deviceName);
}
isFocusStartableKey = true;
else
{
// Move the focus towards down
- MoveFocus(Toolkit::Control::KeyboardFocus::DOWN);
+ MoveFocus(Toolkit::Control::KeyboardFocus::DOWN, deviceName);
}
isFocusStartableKey = true;
else
{
// Move the focus towards the previous page
- MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_UP);
+ MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_UP, deviceName);
}
isFocusStartableKey = true;
else
{
// Move the focus towards the next page
- MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_DOWN);
+ MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_DOWN, deviceName);
}
isFocusStartableKey = true;
if(!DoMoveFocusToNextFocusGroup(!event.IsShiftModifier()))
{
// If the focus group is not changed, Move the focus towards forward, "Shift-Tap" key moves the focus towards backward.
- MoveFocus(event.IsShiftModifier() ? Toolkit::Control::KeyboardFocus::BACKWARD : Toolkit::Control::KeyboardFocus::FORWARD);
+ MoveFocus(event.IsShiftModifier() ? Toolkit::Control::KeyboardFocus::BACKWARD : Toolkit::Control::KeyboardFocus::FORWARD, deviceName);
}
}
{
// No actor is focused but keyboard focus is activated by the key press
// Let's try to move the initial focus
- MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT);
+ MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT, deviceName);
}
}
}