0 Replies Latest reply on Oct 13, 2009 9:51 AM by yantzgh

    FocusManager and tabbing

    yantzgh

      In the application I'm creating (currently with FB beta 2), I've had to write a custom popUpManager because the items that are popped up are taller than the application container and don't scroll using PopUpManager.

       

      For my custom popUpManager, the application needs to have a Group that sits below (in the code) the rest of the application content, which makes the main application something like...

       

      <s:SkinnableContainer id="content" />

      <s:Group id="grp_sspPopUpManager" />

       

      ...When a popup is "opened" it gets added to grp_sspPopUpManager and, if the popup is modal, the content container is disabled.

       

      The problem I'm having is that tabbing within the opened popup doesn't really work.  Pressing tab jumps to random locations, sometimes down to the content group which is disabled.

       

      I've tried adding a FocusManager specifically to the popup, using...

       

      // Add an appropriate focusManager to the modal popUp
                  var smp:ISystemManager = _application.systemManager;
                  var awm:IActiveWindowManager =
                      IActiveWindowManager(smp.getImplementation("mx.managers::IActiveWindowManager"));
                  if(displayObject is IFocusManagerContainer)
                  {
                      IFocusManagerContainer(displayObject).focusManager = new FocusManager(IFocusManagerContainer(displayObject), true);
                      awm.numModalWindows++;
                      awm.addFocusManager(IFocusManagerContainer(displayObject));
                      awm.activate(IFocusManagerContainer(displayObject));
                  }

       

      (code taken from parts of PopUpManagerImplementation).  This doesn't really change anything though.  Adding the popup without this code results in the same behaviour.

       

      Any ideas how to get tabbing/focus working correctly in these popups?