keymanapp / keymanapp/keyman

chore(mac): resize OSK without recreating dozens/hundreds of views

Open
#11,422 0 comments 0 reactions 1 assignee Claimed by @sgschantz View on GitHub
chore mac/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Describe the bug

When the On-Screen Keyboard is resized in Keyman for Mac, all the subviews for each key in the OSK view is removed. This happens repeatedly as the OSK is being resized so that hundreds of subviews (as well as their child views) are removed, recreated and removed again.

Instead, the OSK view should use a stack view to let the OS resize based on the view size. This design would also be less fragile than calculating with the view rect coordinates for every key (a method which broke when different rects began to be passed in to drawRect beginning with macOS Sonoma).

### Keyman apps

- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [ ] Keyman for Linux
- [X] Keyman for macOS
- [ ] Keyman for Windows
- [ ] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.