Commit graph

343 commits

Author SHA1 Message Date
Philly Cai
5d8b99d0f1
Uppercase characters when Option modifier is pressed (#329)
When pressing Option+character (e.g., Option+L), the displayed keystroke
was showing lowercase characters (⌥l) while Command+character correctly
showed uppercase (⌘L).

This fix updates the condition to include the Option modifier flag, ensuring
consistent behavior across all modifier keys.

* test: update test case & change option key handlings
2025-08-03 14:13:49 -07:00
Andrew Kitchen
2066c3dd15 Set version 0.10.4-pre 2025-04-12 16:06:15 -07:00
Andrew Kitchen
7f033daf5a Revert to KeyCastr.app.zip 2025-03-28 09:07:07 -07:00
Andrew Kitchen
05e3fcbeea v0.10.3 2025-03-26 18:03:24 -07:00
Andrew Kitchen
a6f1a632ec Upgrade some project settings, decline others 2025-03-26 17:36:43 -07:00
Andrew Kitchen
66f9c90371 Update About box for 2025
Move some things around in the nib canvas to make it easier to work with
2025-03-26 17:36:33 -07:00
Andrew Kitchen
d62011c749 Avoid migrating user preferences on macOS 10.13
Otherwise user could lose their color pref or possibly crash, as new unarchiver mechanism and related base class don't exist.
2025-03-26 13:18:30 -07:00
Andrew Kitchen
5e8ff49868 Fix macOS deployment target support for older versions
Deployment target version should be set at the project root.

Fixes #321, #318
2025-03-26 12:55:52 -07:00
Andrew Kitchen
0d4c8d1b74 v0.10.3-pre 2024-11-29 16:34:45 -08:00
Andrew Kitchen
06a39b77c7 v0.10.2 2024-11-27 15:26:54 -08:00
Andrew Kitchen
c57433882f Fix leak of Svelte visualizer when switching visualizers 2024-11-27 10:19:38 -08:00
Andrew Kitchen
27a65072cc Update project config 2024-11-27 10:00:02 -08:00
Andrew Kitchen
9f602fc208 Update Sparkle to 2.6.4 2024-11-24 17:00:08 -08:00
Andrew Kitchen
1025e8fcb4 Fix ghost keystrokes after app exits
Instead of using a null EventTap to do a pre-flight check for permissions, using a dedicated EventTap for KeyDown events serves the same purpose and fixes the issue.
Also convert KCEventTap to ARC.

[fixes #72]
[fixes #311]
2024-11-24 16:55:20 -08:00
Andrew Kitchen
cf95a5c58f v0.10.2-pre 2024-11-23 00:05:47 -08:00
Andrew Kitchen
e1f513077f v0.10.1 2024-08-29 15:38:02 -07:00
Andrew Kitchen
fcfa1a9c80 Fix to properly detect modifiers on x86_84
Unit tests caught this right away but they aren't run regularly on Intel
[fixes #303]
2024-08-29 15:03:20 -07:00
Andrew Kitchen
57b51df88e v0.10.0 2024-08-25 10:30:53 -07:00
Andrew Kitchen
c98df900f7 Start using headers from the framework in tests 2024-08-25 09:30:09 -07:00
Andrew Kitchen
6250aa5b41 A little cleanup 2024-08-24 22:19:54 -07:00
Andrew Kitchen
c9dd84673c Fix to ß key special case - we don't want to uppercase this when used in commands 2024-08-04 18:20:22 -07:00
Andrew Kitchen
f9a003a05a Convert KCEventTransformer to observe changes in selected input source 2024-08-04 17:49:21 -07:00
Andrew Kitchen
a3013b5f03 Implement German keyboard special case and clean up a little bit 2024-08-02 21:29:57 -07:00
Andrew Kitchen
e02c2590c3 Update test coverage and fix special cases in new display mode
More refactoring needed, coming soon...
2024-07-17 14:32:27 -07:00
Andrew Kitchen
ce06ec1c92 Fix analyzer warning by simplifying 2024-07-15 20:57:02 -07:00
Andrew Kitchen
141a080d1a Ensure special cases show modifiers in both display modes 2024-07-15 17:24:53 -07:00
Andrew Kitchen
f918aab87b Add UI support for displaying keystrokes with modifiers applied 2024-07-15 14:38:08 -07:00
Andrew Kitchen
dd0a47860c NSUserDefault keys cannot use dot namespacing if you need KVO
The NSNotification-based observation is far too chatty, which can add complexity and impact performance/power consumption.
We will probably want to migrate the other keys away from dot notation in the future since it now looks like technical debt.
The Svelte visualizer will also need to migrate away from NSNotification-based NSUserDefaults updates.
2024-07-15 11:44:34 -07:00
Andrew Kitchen
6149ffa4af Add test cases for a couple special cases (tab and shift-tab) 2024-07-14 18:50:14 -07:00
Andrew Kitchen
ae5b6dd022 Add tests for displaying modified characters based on user defaults
Also observes when default value changes
More refactoring/cleanup needed as well as some edge case handling
2024-07-14 17:13:47 -07:00
Andrew Kitchen
0bf7f6f4f4 Move test case 2024-07-14 17:12:21 -07:00
Andrew Kitchen
91c2b438e6 Fix logic of when to add option symbol 2024-07-13 16:45:33 -07:00
Andrew Kitchen
d9e2b94bb2 Convert KCEventTransformer.m to ARC
This inadvertently fixes a memory leak when the input source changes
2024-07-13 16:25:53 -07:00
Andrew Kitchen
98474daed6 Rename to -[KCKeystroke isCommand]
... which is true with the command *or* control key
Also renane the local variables related to modifier keys for clarity
2024-07-13 16:24:01 -07:00
Andrew Kitchen
91165edcb0 Quick POC to enable displaying modified keys instead of keycaps
Only do this if it's not a command key (i.e. control or command modifier)
Checkpoint before refactoring
2024-07-13 09:39:37 -07:00
Andrew Kitchen
7979161f57 Set version to 0.9.19-pre 2024-07-13 08:21:55 -07:00
Andrew Kitchen
ff1425eeac v0.9.18 2024-06-22 16:32:51 -07:00
Andrew Kitchen
f9f76d386c Small update to indicate where the version is actually updated 2024-06-22 16:16:28 -07:00
Andrew Kitchen
2b28cfd928 Try to ensure the About panel always renders the Quartz Composition
Unsure if it's related to the ARC migration, but the app may crash opening or closing the About panel in a way which implicates Quartz internals.
Explicitly retaining the About panel and QCView and being more gentle about restarting rendering seems to help.
2024-06-22 16:08:17 -07:00
Andrew Kitchen
ccd5ee6cf8 We didn't copy or create this reference, so don't release it 2024-06-19 18:44:37 -07:00
Andrew Kitchen
793965945a Add test coverage for default visualizer options and optimize keycasting
Now that there are multiple display options, converting to stateful options reduces option lookup time by 80%
Some code is moved into the framework to aid in reuse in tests
2024-06-18 19:12:46 -07:00
Andrew Kitchen
c69fc6e75d Remove dead code and logging 2024-06-18 18:26:25 -07:00
Andrew Kitchen
dffe86e399 Update MainMenu.nib to accommodate longer version strings 2024-06-18 18:24:26 -07:00
Andrew Kitchen
b9b95843ed Setting deployment target back to 10.13 2024-06-11 09:32:39 -07:00
Andrew Kitchen
0e28659b00 Setting dev version v0.9.18-pre 2024-06-11 09:30:39 -07:00
Andrew Kitchen
529022b17c v0.9.17 2024-06-08 20:07:24 -07:00
Andrew Kitchen
c0c13df208 Code signing config update 2024-06-08 19:49:38 -07:00
Andrew Kitchen
d1df3f2918 Minor updates to documentation 2024-06-08 13:43:25 -07:00
Andrew Kitchen
13b3a6dbf0 Clean up Frameworks list 2024-06-08 13:32:06 -07:00
Andrew Kitchen
fd68b5c32b Convert KCDefaultVisualizer to ARC 2024-06-08 13:28:05 -07:00