javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp
branchRCL_3
changeset 60 6c158198356e
parent 34 71c436fe3ce0
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp	Thu Jul 15 18:31:06 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp	Thu Aug 19 09:48:13 2010 +0300
@@ -303,17 +303,15 @@
     if (iControl.IsFocusControl())
     {
         // Find the Control's Shell
-        MSwtShell* shell;
         MSwtControl* ctrl = &iControl;
-        while ((shell = ctrl->ShellInterface()) == NULL)
-        {
-            ctrl = ctrl->GetParent()->Control();
-        }
+        MSwtShell& shell = ctrl->GetShell();
 
         // Find next focusable control
-        MSwtControl* newFocus = shell->FindTraversalTargetL(iDetail, iControl);
+        MSwtControl* newFocus = shell.FindTraversalTargetL(iDetail, iControl);
         if (newFocus)
         {
+            shell.Display().UiUtils().SetNaviKeyInput(ETrue);
+            newFocus->PrepareForTraverse();
             newFocus->CoeControl().SetFocus(ETrue, ENoDrawNow);
         }
     }