<AWT Dev> [13] JDK-8218917: KeyEvent.getModifiers() returns inconsistent values for ALT keys
Sergey Malenkov
malenkov at gmail.com
Thu Mar 14 10:33:22 UTC 2019
I strongly don't like two masks for one key. If you press VK_ALT,
ALT_DOWN_MASK should be set. If you press VK_SHIFT then,
SHIFT_DOWN_MASK should be added to indicate that both keys are
pressed. And if you press VK_ALT_GRAPH, only ALT_GRAPH_DOWN_MASK
should be added. Otherwise, you can't distinguish the following key
strokes: 'AltGr+Right' and 'Alt+AltGr+Right'. But these keystrokes are
different and should invoke different actions. For example,
'Alt+Right' moves cursor to the next word
'Alt+Shift+Right' moves cursor to the next word AND adds all skipped
characters to selection
'Alt+AltGr+Right' does nothing, because we do not assign this shortcut yet
On Thu, Mar 14, 2019 at 12:09 AM Sergey Bylokhov
<Sergey.Bylokhov at oracle.com> wrote:
>
> On 13/03/2019 03:59, Sergey Malenkov wrote:
> > I missed the "for ALT keys" in the bug title and thought that
> > "KeyEvent.getModifiers() returns inconsistent values" was about
> > incompatible behaviour on different platforms. In fact, JDK-8218917
> > should be renamed to something like “The right Alt key on Mac should
> > behave as Alt and must not break the left Alt key processing”.
>
> But the "right Alt" should behave like a "left alt" already, it should use both flags:
> the common alt(ALT_DOWN_MASK) and the altGr(ALT_GRAPH_DOWN_MASK).
>
> So if the client will follow the spec below it should work as before, isn't it?:
> https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/event/InputEvent.html#getModifiersEx()
>
> > On Wed, Mar 13, 2019 at 6:57 AM Sergey Bylokhov
> > <Sergey.Bylokhov at oracle.com> wrote:
> >>
> >> On 12/03/2019 12:28, Sergey Malenkov wrote:
> >>> Hi Sergey,
> >>>
> >>> 1. macOS uses a regular Alt key as "Alternate Character Key". This is
> >>> the reason why JDK Toolkit defines Ctrl+Alt to select a mnemonic,
> >>> instead of simple Alt. See
> >>> https://sites.google.com/site/malenkov/java/141229
> >>
> >> Right, but introducing this flag for the "left alt" could cause even more
> >> issues, so this flag is set only for the right.
> >>
> >>> 3. Regression was caused by adding AltGr to key processing on Mac. But
> >>> I found more issues with inconsistent key processing on different
> >>> platforms. See http://sites.google.com/site/malenkov/java/190312
> >>
> >> Not sure that CAPS_LOCK is related.
> >>
> >>>
> >>>
> >>> On Tue, Mar 12, 2019 at 4:17 AM Sergey Bylokhov
> >>> <Sergey.Bylokhov at oracle.com> wrote:
> >>>>
> >>>> On 11/03/2019 17:37, Philip Race wrote:
> >>>>> The debate is about AltGraph which an ancient MS-DOSism for
> >>>>> asking for an ALTernate GRAPHics bitmap font - all pre-dates windows
> >>>>> and I am sure has never been applicable to any MacOS.
> >>>>
> >>>> It also about the "right alt" which is also know as "AltGraph". I guess currently
> >>>> it is implemented as "right alt" on Linux/macOS/windows.
> >>>>
> >>>> BTW on linux it is also named as "Alternative Characters Key":
> >>>> https://help.ubuntu.com/community/ComposeKey
> >>>>
> >>>>> So someone needs to properly explain why we would claim a Mac keyboard
> >>>>> is OK to generate a keycode it doesn't have and cause a slew of regressions
> >>>>> in the process ...>
> >>>>> If Mac doesn't distinguish these two, we should generate the same keycode for both.
> >>>>
> >>>> The macOS supports "right alt", otherwise it would not be possible to implement it in java:
> >>>> https://developer.apple.com/library/archive/technotes/tn2450/_index.html
> >>>>
> >>>>
> >>>>> One could suppose there is a difference else why two keys, but what is the right
> >>>>> thing to do here that fixes all the problems. What exactly WAS the problem
> >>>>> with what was there in the first place ? And if changing it is correct why is it
> >>>>> causing regressions ?
> >>>>
> >>>> Regressions were caused by the bugs in the fix implementation, or am I missed something?
> >>>>
> >>>>
> >>>>>
> >>>>> -phil.
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 3/12/19, 5:34 AM, Sergey Bylokhov wrote:
> >>>>>> Hi, Phil.
> >>>>>> On 11/03/2019 07:43, Philip Race wrote:
> >>>>>>> The reasoning that AltGraph might be useful to someone is a bit weak
> >>>>>>> and I don't think I'd want to support it via system property or build options.
> >>>>>>>
> >>>>>>> If its not a platform keyboard key, why do we need it ?
> >>>>>>
> >>>>>> The "AltGraph" key is also commonly referred to as "Right Alt", and
> >>>>>> it has been implemented on all platforms as a "Right Alt", it is convenient to
> >>>>>> distinguish the left/right alts.
> >>>>>>
> >>>>
> >>>>
> >>>> --
> >>>> Best regards, Sergey.
> >>>
> >>>
> >>>
> >>
> >>
> >> --
> >> Best regards, Sergey.
> >
> >
> >
>
>
> --
> Best regards, Sergey.
--
Best regards,
Sergey A. Malenkov
More information about the awt-dev
mailing list