Alt key sticks even after app loses focus (JDK-8090647)

Pedro Duque Vieira pedro.duquevieira at gmail.com
Mon Feb 13 14:07:12 UTC 2023


I'll try to convince them to allocate time to test this, otherwise I'll try
to see if I can test it in my free spare time.

Thanks,

On Sun, Feb 12, 2023 at 10:28 PM John Hendrikx <john.hendrikx at gmail.com>
wrote:

> Well, it is not a permanent solution, just a way to test to see if it
> actually solves your problem.
>
> --John
> On 12/02/2023 23:23, Pedro Duque Vieira wrote:
>
> .. all in all of course, I'd prefer a solution that properly fixes this
> bug and not have to rely on hacks that are prone to break in the future or
> code that needs to circumvent encapsulation or the module system. So either
> one is unlikely to be a fix I'm happy with.
>
> Thanks for considering submitting a PR to properly fix this issue!
>
> Kind regards,
>
>
>
> On Sun, Feb 12, 2023 at 10:15 PM Pedro Duque Vieira <
> pedro.duquevieira at gmail.com> wrote:
>
>> John,
>>
>> Thank you very much for submitting a work around. Unfortunately, since
>> there were other higher priority bugs and features and we're very close to
>> a release, I wasn't allocated time to work on this much more than sending a
>> message to this mailing list to warn of the existence of this bug.
>> Not sure when I can get back to this. I'll submit your suggestion to the
>> dev team and if someone is allocated time to do it, I'll get back here and
>> let you know if it works.
>>
>> There's also this suggestion that I forgot to mention (I haven't been
>> able to test it though):
>> https://stackoverflow.com/questions/65765656/release-mnemonic-when-application-loses-focus
>>
>> Thanks again, kind regards,
>>
>>
>> On Sun, Feb 12, 2023 at 10:06 PM John Hendrikx <john.hendrikx at gmail.com>
>> wrote:
>>
>>> I'm not sure if you are able to test this yourself, but I made a fix for
>>> this problem.
>>>
>>> You could potentially test it by copying the class `javafx.scene.Scene`
>>> in your project (without changing the package -- and if modules will allow
>>> it, I don't use them personally) and then using this piece of code:
>>>
>>>     private void setWindowFocused(boolean value) {
>>>         windowFocused = value;
>>>
>>>         Node node = getFocusOwner();
>>>         if (node != null) {
>>>             node.setFocusQuietly(windowFocused, focusOwner.focusVisible);
>>>             node.notifyFocusListeners();
>>>         }
>>>
>>>         if (windowFocused && accessible != null) {
>>>             accessible.sendNotification(AccessibleAttribute.FOCUS_NODE);
>>>         }
>>>
>>>         if (!windowFocused) {
>>>
>>> getInternalEventDispatcher().getKeyboardShortcutsHandler().setMnemonicsDisplayEnabled(false);
>>>         }
>>>     }
>>>
>>> The last three lines are what I added. A quick test on Windows here
>>> shows that the mnemonics get disabled as soon as the window loses focus,
>>> and when returning, they're not responding as you'd expect.
>>>
>>> I'll submit a PR as well.
>>>
>>> --John
>>> On 12/02/2023 15:52, Pedro Duque Vieira wrote:
>>>
>>> The behavior on Windows is all over the place for different
>>>> applications.? I tested a few I've got running:
>>>
>>>
>>> Notepad, Notepad++, Eclipse:
>>>
>>>
>>> - Alt-down: Shows mnemonics on menu bar
>>>> - Alt-up: Highlights file menu on alt release
>>>> - Alt-tab: Shows mnemonics but doesn't highlight menu when it loses
>>>> focus; when returning, mnemonics still highlighted, but doesn't act on
>>>> them as menu not selected
>>>
>>>
>>> -> Looks buggy
>>>
>>>
>>> Thunderbird / Opera / Firefox:
>>>
>>>
>>> - Alt-down: nothing
>>>> - Alt-up: shows menu bar (it is hidden normally)
>>>> - Alt-tab: works as expected, no highlighting
>>>
>>>
>>> -> Looks well behaved
>>>
>>>
>>> Explorer / Excel / Wordpad:
>>>
>>>
>>> - Alt-down: nothing
>>>> - Alt-up: shows mnemonics
>>>> - Alt-tab: works as expected, no highlighting
>>>
>>>
>>> -> Looks well behaved
>>>
>>>
>>> Visual Studio Code:
>>>
>>>
>>> - Alt-down: Shows mnemonics on menu bar
>>>> - Alt-up: Highlights file menu on alt release
>>>> - Alt-tab: Shows mnemonics, but hides them once it loses focus; on
>>>> return doesn't show mnemonics
>>>
>>>
>>> -> Looks well behaved
>>>
>>>
>>> Chrome / IntelliJ:
>>>
>>>
>>> -> Looks well behaved, doesn't react to alt presses in any way
>>>
>>>
>>> None of the applications tested reacted on a mnemonic key after
>>>> regaining focus however, even though they may have them still
>>>> highlighted (which I think is a bug).
>>>
>>>
>>> In my opinion, the behavior of notepad/notepad++/eclipse is incorrect
>>>> (they need to hide the mnemonics on focus lost, like Visual Studio Code
>>>> does, but they don't).
>>>
>>>
>>> There seems to be two correct ways of handling mnemonics in applications
>>>> that use them, either:
>>>
>>>
>>> a) shows mnemonics immediately on alt-down, but hide them on focus lost
>>>> (if the alt-down becomes an alt-tab, or probably any other alt
>>>> combination)
>>>
>>>
>>> b) only show mnemonics on a naked alt-up
>>>
>>>
>>> Ticket JDK-8090647 mentions a spec that has been updated, but I can't
>>>> find it.? It also mentions that the behavior for JavaFX should be what I
>>>> described in a), so I think this is a bug that can simply be fixed.
>>>
>>>
>>> --John
>>>
>>>
>>>
>>> Yap, there's quite different behaviors across apps. If you test on
>>> windows 11 you'll get yet another set of different behaviors.
>>>
>>> But all in all, if you: alt+tab (without release) and alt+tab again so
>>> your app regains focus, you'll have the mnemonic still activated, which, as
>>> you say, sounds like a bug no matter the difference in behaviors across
>>> apps.
>>>
>>> I agree with your suggestion: "a".
>>>
>>> My client was quite disappointed and started to rant about javafx. It
>>> didn't help that we were hit by a couple other bugs (perhaps bad
>>> luck).  The fact that the bug was filed on 2013 (10 years later) and is
>>> still happening can be quite problematic.
>>> Perhaps it would make sense to review all bugs filed, giving highest
>>> priority to the bugs that were submitted longer ago?
>>>
>>> Thanks!
>>>
>>> --
>>> Pedro Duque Vieira - https://www.pixelduke.com
>>>
>>>
>>
>> --
>> Pedro Duque Vieira - https://www.pixelduke.com
>>
>
>
> --
> Pedro Duque Vieira - https://www.pixelduke.com
>
>

-- 
Pedro Duque Vieira - https://www.pixelduke.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20230213/ebcb5e51/attachment.htm>


More information about the openjfx-dev mailing list