Commit graph

140 commits

Author SHA1 Message Date
Shawn Schantz
cd59c298a8 chore(mac): remove NSString extension 2025-05-07 12:36:17 +07:00
Shawn Schantz
98232185ba fix(mac): improve detection of stale TextApiCompliance 2025-02-21 17:17:43 +07:00
sgschantz
7ba30224ff fix(mac): resolve build error 2025-01-30 16:00:44 +07:00
Shawn Schantz
f556b3a524
Merge branch 'master' into fix/mac/12997-restore-notifications 2025-01-29 13:12:21 +07:00
Shawn Schantz
1309eb9d2a
Merge pull request #12988 from keymanapp/fix/mac/12928-open-osk-on-activation
fix(mac): show and hide OSK consistently for all keyboards
2025-01-28 12:10:44 +07:00
Shawn Schantz
f0d290aed0
Merge branch 'fix/mac/12928-open-osk-on-activation' into fix/mac/12997-restore-notifications 2025-01-27 13:44:24 +07:00
sgschantz
938d3ab61e fix(mac): OSK window default state must be not visible
to be certain that it only opens due to settings
or in response to a user action
2025-01-27 12:30:18 +07:00
sgschantz
077229e89c chore(mac): added comments and renamed function 2025-01-27 09:21:26 +07:00
sgschantz
a69426f2f5 fix(mac): properly manage lifecycle
moves handling of all KMInputMethodLifeCycle notifications to
KMInputMethodAppDelegate and out of KMInputController
because KMInputController instances are being cached
by the OS and swapped in when the input method changes
state

Fixes: #12997
2025-01-23 16:28:48 +07:00
sgschantz
c9c47e8438 chore(mac): fixed else statement for architecture tag 2025-01-23 11:42:47 +07:00
sgschantz
a2e6947eb1 fix(mac): opening OSK does not require existence of KVK
Fixes: #12928
2025-01-22 15:40:55 +07:00
sgschantz
0ec2664126 chore(mac): clean up comments 2025-01-22 12:52:44 +07:00
sgschantz
162dc40f2c chore(mac): added architecture tag, more breadcrumbs 2025-01-20 14:17:15 +07:00
sgschantz
76d0d69e6b chore(mac): add KMSentryHelper class, and new tags and breadcrumbs 2025-01-16 15:26:03 +07:00
sgschantz
8e833c8314 chore(mac): reworked sentry testing
can now force crashes or send messages by typing a
single character when sentry testing is enabled
in the UserDefaults
2025-01-13 14:08:22 +07:00
sgschantz
31280ecee7 fix(mac): apply OSK modifiers to typing on physical keyboard
Fixes: #12584
2024-12-19 15:52:19 +07:00
Shawn Schantz
d40ca934c6 create separate functions for managing UserData contents of CGEvent 2024-10-17 16:31:00 +07:00
sgschantz
bfeaebfcb8 fix(mac): pass modifier keys with keydown event generated by OSK
Fixes: #6578
2024-10-16 15:02:49 +07:00
sgschantz
6abd59bad5 feat(mac): renaming and moved adjustModifiers to KMModifierMapping
Fixes: #875
2024-09-27 16:17:31 +07:00
Shawn Schantz
8821a81f19
Merge branch 'master' into feat/mac/933-alt-option-rules 2024-09-26 14:36:45 +07:00
sgschantz
70ed0b5dd4 feat(mac): transform left option modifier to right option 2024-09-26 14:30:09 +07:00
sgschantz
71079a20c5 feat(mac): encapsulate option to alt logic in KMModifierMapping 2024-09-25 16:47:17 +07:00
sgschantz
813da7d618 feat(mac): created CoreKeyboardInfo to analyze key mappings 2024-09-23 14:50:36 +07:00
sgschantz
becea93fa9 change(mac): remove verbose logging option
also remove related debug mode code, debug logging
is controlled solely by universal logging settings

Fixes: #11525
2024-09-17 15:36:41 +07:00
sgschantz
b8cbf04ff7 change(mac): added KMInputMethodLifecycle
clearly manages the state of the input method and notifies
any observers of changes

Fixes: #12342
2024-09-10 16:06:33 +07:00
sgschantz
78fd4ee19b change(mac): renaming, use client map instead of servers array 2024-09-06 16:41:07 +07:00
sgschantz
a032f80230 change(mac): read and write new osk window state
persists state whenever user opens or closes OSK
also records location and size

Fixes: #12342
2024-09-04 16:04:59 +07:00
Shawn Schantz
18e7a1e363 change(mac): remove Always show OSK option
add simple flag to indicate whether OSK is shown
2024-09-03 20:24:08 +07:00
sgschantz
19cb236fe5 fix(mac): open download info sheet from config window
Rather than opening from the keyboard download window
which is supposed to be closed by the download info
sheet. This prevents the download info sheet from
closing its own parent on which it depends.
2024-08-30 15:05:58 +07:00
Shawn Schantz
d6d9feb64c
Merge branch 'master' into fix/mac/9308-no-package-info 2024-08-30 12:55:23 +07:00
sgschantz
9ddb7ba329 change(mac): encapsulate active keyboards access in KMSettingsRepository 2024-08-30 09:38:58 +07:00
sgschantz
569a8a8a49 fix(mac): eliminate all use of deprecated API beginSheetModalForWindow
beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:
was deprecated in macOS 10.10 and replaced by
beginSheetModalForWindow:completionHandler:

The newer API automatically closes the sheet.
Explicitly closing the sheet also seemed to be causing
the parent windows to close.

Fixes: #9308
2024-08-29 15:38:00 +07:00
Shawn Schantz
930221376c fix(mac): show package info after keyboard install
Move to updated APIs that no longer require window dismissal.

Fixes: #9308
2024-08-27 04:19:51 +07:00
sgschantz
5364a741da change(mac): some refactoring
Mostly taking advantage of KMSettingsRepository so
that more of the UserDefaults changes happen through it
Still some refactoring remains for active keyboards list
2024-08-16 16:34:19 +07:00
sgschantz
b1685f5865 change(mac): use partial paths in settings
converts partial paths to full paths as needed
and vice-versa when moving between file
system access and referencing keyboards
in UserDefaults
2024-08-15 15:41:38 +07:00
Shawn Schantz
05918b5f04
Merge branch 'master' into change/mac/2542-store-keyboards-elsewhere 2024-08-09 14:38:33 +07:00
Shawn Schantz
8b408730b7 change(mac): uses Library directory instead of Documents
Write new key KMDataModelVersion in UserDefaults with
integer value that determines how data is expected to be stored.
Migrates existing Keyman data to new location if it was written
with an older (or no) version.

Fixes: #2542
2024-08-06 17:14:34 +07:00
Shawn Schantz
b435090a6f change(mac): migrates options and changes keyboards successfully 2024-08-05 16:43:02 +07:00
sgschantz
c2e2cf53c6 change(mac): successful migration but not loading from config 2024-08-02 15:21:56 +07:00
sgschantz
4fb5d74f49 change(mac): implemented data migration and settings path updates 2024-08-01 17:00:07 +07:00
sgschantz
bff17dc1c2 change(mac): customize menus after all views are created
rather than reading from disk and adding keyboards include
awakeFromNib, do so in applicationDidFinishLaunching
2024-07-31 10:52:34 +07:00
sgschantz
37dcacc0cb change(mac): add KMDataRepository class to handle data (keyboards) migration 2024-07-30 16:08:34 +07:00
Shawn Schantz
5488e32be2 change(mac): add class to encapsulate settings 2024-07-29 16:01:58 +07:00
sgschantz
59013ae478 change(mac): add custom sentry tags to provide crash context
still need to add breadcrumbs and remove test code
2024-06-15 17:24:34 +07:00
sgschantz
ab98086003 fix(mac): adopt unified logging APIs
remove all references to NSLog
adjust log level for some calls to os_log
Fixes #10997
2024-05-23 15:50:50 +07:00
sgschantz
aff9a0e157 fix(mac): use unified logging APIS
remove logDebugMessage API which calls NSLog and call os_log instead
2024-05-22 19:32:40 +07:00
sgschantz
e4f7f1d1a1 fix(mac): added unified logging to Keyman Engine for mac
first draft, need to remove some debug statements and replace
others that would be more useful
2024-05-21 12:45:17 +07:00
sgschantz
746149178a chore(mac): re-indenting to 2 spaces
phase two
2024-05-13 17:07:52 +07:00
sgschantz
0288b72c84 fix(mac): made osk keys visible again
set clipsToBounds to true for osk and osk key views
This property began defaulting to false with the update to
macOS 14 sonoma causing the osk keys to become so large
that they obscured the entire osk view.
Also replaced and few more deprecated properties and functions.
2024-05-10 14:49:34 +07:00
sgschantz
10b60006bd added lowLevelBackspaceCount, eliminated redundant keymanCode 0xFF event 2024-02-28 09:37:04 +07:00