My bad. I had in fact been compiling a modified version of FocusManager into my
code, and what I did below overwrote my mods with the original source.
Apparently my mods were causing the problem. So now that I know roughly where
the problem is, I should be able to pinpoint it.
Long ago I changed this in FocusManager:
form.addEventListener(KeyboardEvent.KEY_DOWN, defaultButtonKeyHandler);
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
to this:
form.addEventListener(KeyboardEvent.KEY_UP, defaultButtonKeyHandler);
form.addEventListener(KeyboardEvent.KEY_UP, keyDownHandler, true);
I wanted to change the behavior of the ENTER key, not the tab key. I was having
problems that when dialogs were dismissed with the enter key, the KEY_UP event
would get dispatched in the dialog's parent, and that was causing me grief in a
few places. I should be able to fix it so I keep my desired behavior for the
ENTER key, and the correct behavior for the tab KEY_DOWN as well.
Thanks Alex, as always, for sharing your insights.
From: Alex Harui <[email protected]>
To: "[email protected]" <[email protected]>; Dave Glasser
<[email protected]>
Sent: Friday, August 21, 2015 7:11 PM
Subject: Re: Odd tab/focus behavior
On 8/21/15, 4:03 PM, "Dave Glasser" <[email protected]> wrote:
>
>Clicking the titlebar of the main window, then back to the spawned window
>before typing (which should generate Event.ACTIVATE) does not help.
>But here's something else that makes no sense. I compiled FocusManager.as
>from the Flex 4.13.0 SDK into my app so I could put some trace statements
>in it. And without changing anything, that fixed the problem. So I'm not
>going to argue with success. I'll just add it to my build, and keep an
>eye out for other problems that might arise because of it.
>
>But is it possible that the FocusManager class that's compiled into the
>4.13.0 library SWC was not compiled from that source file? I'm quite sure
>I'm compiling with the 4.13.0 SDK's mxmlc.bat.
That’s weird. You can swfdump the FocusManager and compare it to the
source if you really want to know.
Are you using any third-party SWCs? If they have a FocusManager depending
on how it was built there is a slim chance it would get linked in instead
of the one in the framework.swc. Or if you happen to have another
monkey-patched FocusManager on the source-path, that one could be getting
in.
-Alex