keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
372 stars 102 forks source link

fix(mac): restore OSK keys that became invisible in mac OS 14 Sonoma #11388

Closed sgschantz closed 6 days ago

sgschantz commented 1 week ago

According to AppKit Release Notes for macOS 14 the property NSView.clipsToBounds which was defaulted to true was changed to default to false. This caused the Keyman OSK keys to not be drawn correctly under Sonoma, giving the appearance of a blank OSK. This change is to override the new default behavior and set the property back to true.

Fixes #11379

Also, with the move to Xcode 15.3, there are several APIs called from Keyman for Mac that were deprecated before our minimum supported version of macOS (now set to 10.13). These can be replaced without doing version checks because the replacements are available for all of our supported OS versions. It was suspected that these may have caused the OSK issue, but they had no effect.

To support the debugging of the OSK issue, log statements were also added using the Unified Logging API for which we now have support in our minimum target version of macOS.

User Testing

  1. Select On-screen Keyboard from the Keyman menu
  2. Confirm that the keyboard is not blank but populated with dozens of keys as expected
  1. Select On-screen Keyboard from the Keyman menu
  2. Resize the OSK
  3. Confirm that the keys resize appropriately and are still visible
keymanapp-test-bot[bot] commented 1 week ago

User Test Results

Test specification and instructions

Test Artifacts

dinakaranr commented 1 week ago

Test Results

  1. Install the latest version of the Keyman-17.0.320.dmg file on 10/05/2024
  2. Downloaded and installed the gff_amharic keyboard using the Keyman Configuration dialog.
  3. Select the "Amharic" keyboard on the toolbar.
  4. Open the "On-Screen Keyboard" window by clicking the Keyman icon.

Here, the on-screen keyboard appeared correctly, and it is not in a blank state now. It is showing the "amhairc" key buttons.

jahorton commented 1 week ago

Have we been able to test this on pre-Sonoma devices as well? Since the issue arose with Sonoma, it'd be wise to verify that we don't break on older macOS as a consequence of the fix.

sgschantz commented 6 days ago

Tested with Monterey, and the OSK passes both users tests there also.

keyman-server commented 5 days ago

Changes in this pull request will be available for download in Keyman version 17.0.323-beta