Commit graph

162 commits

Author SHA1 Message Date
sgschantz
2e28e93bb5 override init to funnel everything to designated initializer for CoreAction 2023-03-27 16:26:32 +07:00
sgschantz
6be8169945 set designated initializer for CoreAction class 2023-03-27 15:55:47 +07:00
sgschantz
29bd741386 added action array optimizer unit tests 2023-03-27 14:33:07 +07:00
sgschantz
7a0eb338c4 added helper and wrapper unit tests 2023-03-21 08:41:41 +07:00
sgschantz
37441c753a specify ctrl and alt only if not right or left ctrl or alt 2023-03-17 09:11:45 +07:00
sgschantz
4316a3ceea modifier conversion support for left and right alt and ctrl keys 2023-03-16 14:25:33 +07:00
sgschantz
0251923ec8 set context in core at init time 2023-03-14 14:03:25 +07:00
sgschantz
bc3c8cdc6b optimize array of actions returned by core to conform to expected actions list 2023-03-14 12:03:54 +07:00
sgschantz
eba89e54cd preliminary integration of keyman core with keyman engine for mac 2023-03-09 14:07:44 +07:00
Steven R. Loomis
ae45295dc6 Merge remote-tracking branch 'upstream/master' into chore/merge-master-a17s5-REDO-epic-ldml 2023-02-03 16:53:35 -06:00
Marc Durdin
067028cec2 chore: revise tag variable name to VERSION_GIT_TAG
Introduce new $VERSION_GIT_TAG environment variable, and update all
references to release@version in all projects to use the new variable.
2023-01-21 17:02:50 +07:00
Steven R. Loomis
bc14f18460 Merge remote-tracking branch 'origin/master' into chore/core/mergemaster4-epic-ldml 2022-12-15 17:55:13 -06:00
Marc Durdin
a45145ae3d fix(mac): Caps processing was not consistent with core
Fixes #7632.

If Caps Lock was on, rules that did not specify Caps Lock state were
not matched, for example:

```
+ [K_SLASH] > 'foo'
```

The truth table for matches is:

Event    |    Rule     | Result
---------|-------------|-----------
NCAPS    |    0        | match
NCAPS    |    CAPS     | no match
NCAPS    |    NCAPS    | match
CAPS     |    0        | match
CAPS     |    CAPS     | match
CAPS     |    NCAPS    | no match

(Internally, Keyman for Mac currently maps 0 to NCAPS on the event for
simplicity.)

The fix is to ignore the Event Caps Lock state if the rule specifies
neither `CAPS` nor `NCAPS`. If the rule specifies either of these
state masks, then the Caps component of the state mask must match.
2022-11-23 09:25:11 +11:00
Steven R. Loomis
d56f6557fb chore(core): deprecate checksum in 16.0 🙀
- do not generate unless version<16.0
- never check checksum

Fixes: #7220
2022-09-16 14:24:01 -05:00
Steven R. Loomis
efd4c83490 chore(core): ignore checksum in 16.0 🙀
- mark as deprecated

Fixes: #7220
2022-09-16 14:24:01 -05:00
Marc Durdin
89ccc393ab chore: make checksum optional
Fixes #7222.
2022-09-09 17:23:07 +10:00
Marc Durdin
d54dd049d2 chore(common): add VERSION_160 to headers
Fixes #7044.

Groundwork for KMXPlus file format for LDML keyboard support.
2022-08-07 07:45:57 -05:00
Marc Durdin
b23df3fbc8 feat(web): &newLayer and &oldLayer
Fixes #6364.

Removes `&layerChanged` and adds `&newLayer` and `&oldLayer` system
stores with the additional nuances around values as described in #6364.
2022-03-13 08:29:15 +11:00
Marc Durdin
13c176c638 fix(mac): Check for CODE_SETSYSTEMSTORE
Fixes #6168.

This does not any support for changing any system store values, but does
ensure that the statement will be correctly handled when emitting
text.
2022-01-27 13:26:04 +11:00
Marc Durdin
0c0bb420b5
Merge pull request #5963 from keymanapp/feat/web/3621-newcontext-group
feat(web): Start of Sentence support - part 1 🕊
2022-01-17 12:04:29 +11:00
Shawn Schantz
4af399612e
Merge pull request #6006 from keymanapp/fix/mac/osk-label-size
fix(mac): increase OSK character size by 50%
2021-12-17 15:36:27 +07:00
sgschantz
5ffd91d29b restore OSK relative label height size to 0.45 2021-12-17 13:58:53 +07:00
sgschantz
a5f39a77d2 decrease OSK relative label height sizeto 0.42 2021-12-09 14:54:15 +07:00
sgschantz
0bff16a643 merge in changes from master 2021-12-09 12:25:08 +07:00
sgschantz
e982812454 fixed indentation 2021-12-07 15:40:06 +07:00
sgschantz
1b27d2b09a moved package reading out of app delegate to separate class KMPackageReader, conformed to code style guidelines 2021-12-07 15:24:17 +07:00
sgschantz
e7d98edaa2 conforms to style guidelines, adds constants for relative height of key label 2021-12-06 11:49:29 +07:00
sgschantz
6a1803201f increase size of characters on key by 50% and clip long labels without ellipsis 2021-12-03 11:14:37 +07:00
sgschantz
96c78752b5 load Keyman Package information from kmp.json file and store in new PackageInfo object rather than in existing Dictionary hierarchy 2021-11-25 17:09:01 +07:00
Marc Durdin
ce2aa9a166 feat(web): support for &layerChanged
Relates to #3621.

Add support for `&layerChanged` system store. This store is set to `1`
before a `begin postKeystroke`, if the keystroke it follows resulted in
a layer change, either programatically through a keyboard rule, or
through a `nextlayer` property of the touched key.
2021-11-24 06:45:20 +11:00
Marc Durdin
dcedb15b69 chore: cleanup comments and defines 2021-11-23 16:08:19 +11:00
Marc Durdin
33a2e230f6 chore(developer): enforce file versions for feature 2021-11-11 13:26:56 +11:00
Marc Durdin
643d6da144 fix(mac): .kmx max file version is now 0x0E00 (14.0)
Fixes #5316.

Keyman for macOS did not recognise the updated version number 0x0E00,
which is version 14.0. There are no changes to the file format which
impact Keyman for macOS -- the only change is support for notany and
context for Keyman Engine for Web.
2021-06-22 07:10:39 +10:00
Marc Durdin
647c20ebc7 chore: support for xcode 12
Fixes #4994.
2021-04-29 14:30:10 +10:00
Marc Durdin
0981473514 chore(mac): fix iso section key code 2020-11-25 18:56:23 +11:00
Marc Durdin
d849c532de chore(mac): address review comments
* Make less WET
* Add comments
* Fix mixed up key labels
2020-11-24 08:27:37 +11:00
Marc Durdin
c8000c2d9c chore: cleanup 2020-11-24 08:24:30 +11:00
Marc Durdin
e32ab796bd feat(mac): Add support for "ISO" keyboard layouts
Fixes #2601.

This PR adds support for the 102nd key as found on European layouts. It
does not however reshape the Enter key and move the BKSLASH key, as that
is a much bigger job; functionally this makes it possible to press the
102nd key, which was the biggest gap.
2020-11-24 08:24:30 +11:00
Marc Durdin
e41df6f838 fix(mac): re-sign files post plist update
Cleans up a bunch of bits and pieces around the build process and makes
sure that files are re-signed after we update the Info.plist file.
2020-11-24 08:02:16 +11:00
Marc Durdin
c2401514cb fix(mac): support page and copyright
Fixes #3849.

* Uses keyman-staging.com when on alpha or beta
* Updates copyright year at build time
* Fixes link to help documentation (/mac, not /macosx)
2020-11-20 05:55:53 +11:00
Marc Durdin
c8070718d9 chore: fixup plists 2020-11-19 09:07:54 +11:00
Marc Durdin
bede3948d2 feat(mac): Sentry support
I wasn't going to do this, but realised that crash reporting was going
to be a problem on mac because it still used crashlytics/fabric. Turned
out to be a good exercise to get me back into macOS world, and fairly
straightforward to get right (helps that the other platforms broke the
ice for me).
2020-11-18 17:13:20 +11:00
jahorton
7e10c56354 docs(common): requested comment tweaks 2020-11-17 09:57:31 +07:00
jahorton
ad6489d9d3 chore(common): adds requested comments re: tentative META flag 2020-11-17 09:42:28 +07:00
Marc Durdin
255e4f4b7a chore: Merge branch 'master' into chore/beta-to-master-p9s2-1 2020-02-17 10:11:15 +11:00
Marc Durdin
4281b72b26 chore(mac): Merge branch 'beta' into fix/mac/install-fails-with-quarantine 2020-02-14 11:26:43 +11:00
Marc Durdin
8784e142c3 chore(mac): address review comments 2020-02-07 16:14:10 +11:00
Marc Durdin
f856785742 fix(mac): Modifier keys were resetting cached context
Fixes #2375.

For applications that do not provide context to Keyman, Keyman was losing
the context buffer whenever a modifier key was pressed or released. This
change modifies the cache reset to occur only when the Command modifier is
pressed.
2020-02-05 19:32:03 +11:00
Marc Durdin
ccfef64c99 chore(mac): use new version infrastructure 2020-01-29 11:15:36 +11:00
Marc Durdin
f8ea457325 feat(mac): install script
First steps towards a clean install script
for Keyman for Mac. Some steps still out-
of-order for now, particularly opening
System Preferences to allow Keyman before
Keyman has run for first time.
2020-01-29 10:12:26 +11:00