Fix focus issue after calling ClearFocus api 34/185034/2
authorxb.teng <xb.teng@samsung.com>
Wed, 25 Jul 2018 10:00:31 +0000 (18:00 +0800)
committerXianbing Teng <xb.teng@samsung.com>
Wed, 25 Jul 2018 10:00:23 +0000 (10:00 +0000)
After calling ClearFocus api, mIsFocusIndicatorEnabled will be 0.
In this case, if you call SetCurrentFocusActor again, then the first pressed direction key is valid, but the second pressed direction key can works. It's an issue.

Change-Id: I0d731263f11b40fa3211fd64388f8c9da5707fc9

dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp

index 3f398c5..9e34984 100644 (file)
@@ -672,12 +672,9 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
           // Show focus indicator
           mIsFocusIndicatorEnabled = 1;
         }
-        else
-        {
-          // Move the focus towards left
-          MoveFocus(Toolkit::Control::KeyboardFocus::LEFT);
-        }
 
+        // Move the focus towards left
+        MoveFocus(Toolkit::Control::KeyboardFocus::LEFT);
         isFocusStartableKey = true;
       }
       else
@@ -695,11 +692,9 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
           // Show focus indicator
           mIsFocusIndicatorEnabled = 1;
         }
-        else
-        {
-          // Move the focus towards right
-          MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT);
-        }
+
+        // Move the focus towards right
+        MoveFocus(Toolkit::Control::KeyboardFocus::RIGHT);
       }
       else
       {
@@ -716,12 +711,9 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
         // Show focus indicator
         mIsFocusIndicatorEnabled = 1;
       }
-      else
-      {
-        // Move the focus towards up
-        MoveFocus(Toolkit::Control::KeyboardFocus::UP);
-      }
 
+      // Move the focus towards up
+      MoveFocus(Toolkit::Control::KeyboardFocus::UP);
       isFocusStartableKey = true;
     }
     else if (keyName == "Down" && !isAccessibilityEnabled)
@@ -731,12 +723,9 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
         // Show focus indicator
         mIsFocusIndicatorEnabled = 1;
       }
-      else
-      {
-        // Move the focus towards down
-        MoveFocus(Toolkit::Control::KeyboardFocus::DOWN);
-      }
 
+      // Move the focus towards down
+      MoveFocus(Toolkit::Control::KeyboardFocus::DOWN);
       isFocusStartableKey = true;
     }
     else if (keyName == "Prior" && !isAccessibilityEnabled)
@@ -746,11 +735,9 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
         // Show focus indicator
         mIsFocusIndicatorEnabled = 1;
       }
-      else
-      {
-        // Move the focus towards the previous page
-        MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_UP);
-      }
+
+      // Move the focus towards the previous page
+      MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_UP);
 
       isFocusStartableKey = true;
     }
@@ -761,11 +748,9 @@ void KeyboardFocusManager::OnKeyEvent(const KeyEvent& event)
         // Show focus indicator
         mIsFocusIndicatorEnabled = 1;
       }
-      else
-      {
-        // Move the focus towards the next page
-        MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_DOWN);
-      }
+
+      // Move the focus towards the next page
+      MoveFocus(Toolkit::Control::KeyboardFocus::PAGE_DOWN);
 
       isFocusStartableKey = true;
     }