GlobeKey Action on older KeymamEngines

Hello again.
Most of the other Keyman engine-related issues were solved, but here’s a new one.

I have 2 KM keyboards in a custom android app, and the user will have other input methods. I know that I can set the Globe Key action to several values (open menu, next KM keyboard, next input method, etc.)

In both KM engine 13 and 14, I can use:
GLOBE_KEY_ACTION_SHOW_MENU , GLOBE_KEY_ACTION_SWITCH_TO_NEXT_KEYBOARD , or GLOBE_KEY_ACTION_DO_NOTHING

Here’s another minimal example:

In KMEngine 14 (see project KMSample2-14): the fourth option works well:
GLOBE_KEY_ACTION_ADVANCE_TO_NEXT_SYSTEM_KEYBOARD

In KMEngine 13 (see project KMSample2-11-13) , it still opens the menu, even though it has been instructed to switch to the next IME.

In my “real” app, the user has an option to choose the keyboard, and any one user is unlikely to need both, so a simple next Input Method may be sufficient. Can you help me figure out why GLOBE_KEY_ACTION_ADVANCE_TO_NEXT_SYSTEM_KEYBOARD doesn’t work in KME 13 (KMSample2-11-13) or earlier. If it’s my mistake, great! If it is a bug, I guess you’ll have to decide whether to backport it to stable 13. I’m leaning toward submitting my next app version with 14 anyway, since everything I want works there now.

Eventually, if the user selects both KM keyboards, I may want the first KM keyboard’s globe to switch KM keyboards, and the second’s globe to switch Input methods. I have an idea how I would set up this in the KMmanager lifecycle.

ah, this is fixed in 14 via PR 3140. I’ve highlighted the offending line where the globe button was getting reverted to GlobeKeyAction.GLOBE_KEY_ACTION_SHOW_MENU.

I’ll cherry-pick this to 13.0

Thank you, thank you!

@darcy, please let me know when and which 13 version will contain this fix. I want to embed it and push an update to my app.

It turns out the fix was already cherry-picked to stable-13.0 in 13.0.6212

2020-05-25 13.0.6212 stable

  • Bug fix:
    • Fix system keyboard globe button override (#3161)

When I rebuilt your project with 13.0.6220, the globe button switched to the next system keyboard.

Great, OK. I had 13.0.6060.