javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp
branchRCL_3
changeset 60 6c158198356e
parent 34 71c436fe3ce0
equal deleted inserted replaced
59:e5618cc85d74 60:6c158198356e
   301     // because Shells can never get Coe focus. Shell focus is defined to be
   301     // because Shells can never get Coe focus. Shell focus is defined to be
   302     // the state when the Shell is active and has no focused children.
   302     // the state when the Shell is active and has no focused children.
   303     if (iControl.IsFocusControl())
   303     if (iControl.IsFocusControl())
   304     {
   304     {
   305         // Find the Control's Shell
   305         // Find the Control's Shell
   306         MSwtShell* shell;
       
   307         MSwtControl* ctrl = &iControl;
   306         MSwtControl* ctrl = &iControl;
   308         while ((shell = ctrl->ShellInterface()) == NULL)
   307         MSwtShell& shell = ctrl->GetShell();
   309         {
       
   310             ctrl = ctrl->GetParent()->Control();
       
   311         }
       
   312 
   308 
   313         // Find next focusable control
   309         // Find next focusable control
   314         MSwtControl* newFocus = shell->FindTraversalTargetL(iDetail, iControl);
   310         MSwtControl* newFocus = shell.FindTraversalTargetL(iDetail, iControl);
   315         if (newFocus)
   311         if (newFocus)
   316         {
   312         {
       
   313             shell.Display().UiUtils().SetNaviKeyInput(ETrue);
       
   314             newFocus->PrepareForTraverse();
   317             newFocus->CoeControl().SetFocus(ETrue, ENoDrawNow);
   315             newFocus->CoeControl().SetFocus(ETrue, ENoDrawNow);
   318         }
   316         }
   319     }
   317     }
   320 }
   318 }
   321 
   319