# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
Addresses review feedback from Marc and Darcy:
- Add JavaDoc comments to getKeyboardHeightMin() and getKeyboardHeightMax()
explaining the purpose, parameters, and return values
- Implement separate pending height tracking per keyboard type (in-app/system)
and orientation (portrait/landscape) instead of a single flag
- Add four preference keys following KMKey_ naming convention:
KMKey_PendingHeightUpdate_InappPortrait, KMKey_PendingHeightUpdate_InappLandscape,
KMKey_PendingHeightUpdate_SystemPortrait, KMKey_PendingHeightUpdate_SystemLandscape
- Create helper function getPendingHeightKey() to determine the correct key
- Create setPendingHeightUpdate() and getAndClearPendingHeightUpdate() functions
- Fix applyKeyboardHeight() to use new helper functions and remove broken
heightApplied variable and duplicate pending height logic
- Update KMKeyboard.onResume() to use getAndClearPendingHeightUpdate()
- Add documentation links for getKeyboardHeightMin and getKeyboardHeightMax
in index.md
Handling invalid orientations
updating orientation logic
refresh webview height if ApplyKeyboardHeight() has been applied without KB active
I ran into a bug building this code into app-builders and fixed it downstream. This commit pushes it upstream.
While resize dialog is open:
- Keyboard WebView is NOT loaded (isKeyboardLoaded() == false)
- ACTION_UP saves to SharedPreferences: ✅ Works
-But skips WebView layout update: ❌ Because keyboard not loaded
- User exits dialog, keyboard appears:
- If the keyboard WebView loads and reads from SharedPreferences properly: ✅ Works
- But if there's a timing issue or the WebView had old layout params cached: ❌ Touch zone mismatch