Commit graph

41 commits

Author SHA1 Message Date
Marc Durdin
1b88ab99be fix(core): make km_core_state_get_actions() idempotent
Fixes #10582.

Returned struct from the `km_core_state_get_actions()` API is now owned
by the state object. This is a change in API contract. The corresponding
`km_core_actions_dispose()` API has been made private, because there is
never any need for API consumers to call it. As this change is happening
in alpha, we won't bump the ABI version.

`state->app_context` is now guaranteed to be in sync with
`state->context` after `km_core_process_event()`, with the actions
struct populated at that point.

The next and final step in this refactor is to remove the actions queue
altogether from the Core and make that a kmn-only concept, but that will
wait until 18.0. The only consumers of the actions queue are the
kmn-specific interactive debugger in Keyman Developer, and kmn-specific
Input Method eXtensions in Keyman Engine for Windows.
2024-02-01 11:28:08 +07:00
Marc Durdin
cf2d6c4244 chore(mac): remove legacy Core action items references
Relates to #9999.
2024-01-17 14:44:34 +11:00
Marc Durdin
823b7722a0 refactor(mac): remove legacy Core context API calls
Relates to #9999.
2024-01-17 14:44:07 +11:00
Marc Durdin
aea95c4f9d chore(mac): use only debug context functions 2024-01-15 13:12:15 +07:00
Marc Durdin
a1fbbd1ab5 refactor(mac): remove unused context calls 2024-01-15 08:39:30 +07:00
Marc Durdin
9830f9ea24 refactor(core): use km_core_state_context_clear where possible
Relates to #10365.

Use `km_core_state_context_clear()` instead of `km_core_context_clear()`
as part of eliminating use of `km_core_state_context()`.
2024-01-12 12:05:00 +07:00
sgschantz
ccee68cf13 load persisted options and enable unit test 2023-12-18 15:50:39 +07:00
sgschantz
71d4710d89 changes for review comments 2023-12-13 15:40:16 +07:00
sgschantz
ad34af7f74 remove action array optimizer and handler obsoleted by core improvements 2023-11-22 13:43:12 +07:00
sgschantz
d20f636827 disable persist options unit test, enforce emit keystroke returned from keyman core 2023-11-22 10:35:59 +07:00
sgschantz
75a99a940f formatting changes 2023-11-21 10:22:02 +07:00
sgschantz
ada74039e0 consuming actions struct from core 2023-11-03 08:43:37 +07:00
sgschantz
aace9fc9df proper unicode conversion when getting context stringthat containing SMP text; also other clean up in response to review comments 2023-10-30 12:29:51 +07:00
sgschantz
184f56c7aa use core context instead of locally managed context 2023-10-26 15:38:19 +07:00
sgschantz
d87459c3bc update for rename of core filenames and apis 2023-10-23 10:57:32 +07:00
sgschantz
615c9c23d2 limit most log statements to debug mode 2023-10-16 15:26:13 +07:00
sgschantz
0a56662ed1 expose context properly in core wrapper 2023-09-27 15:59:26 +07:00
sgschantz
9865c3d6ec set context correctly for unit test 2023-09-27 15:19:16 +07:00
sgschantz
682d99c2cb context simplification, legacy app determination integrated into TextCompatibilityCheck 2023-09-26 10:48:43 +07:00
sgschantz
df3c34a711 add back EventTap function to support left and right modifier keys, do not set NoCaps flag in calls to Core when Caps Lock is off 2023-08-24 14:06:49 +07:00
sgschantz
1efce615f0 pass caps lock value to Keyman Core when processing keys 2023-08-22 10:13:59 +07:00
sgschantz
f57b934257 use helper method for string to unichar string 2023-08-16 15:53:42 +07:00
sgschantz
2cb7458829 successfully loading setting options in core -- not behaving predictably until null terminator added 2023-08-15 14:57:30 +07:00
sgschantz
4010c79bf9 handle PersistOption action; persisting but not loading at startup yet 2023-08-10 11:30:12 +07:00
sgschantz
0b8e3f62b4 remove key processing code from engine and move virtual key map to CoreHelper 2023-08-02 16:01:19 +07:00
sgschantz
b2dce47b3f update context with core when invalidated 2023-07-06 13:57:37 -04:00
sgschantz
7d7fc2e7bc fix or disable failing unit tests 2023-06-01 08:34:31 +07:00
sgschantz
144f4e0b4f added KMActionOperation to batch text inserts and deletes; improved context updates 2023-05-23 15:34:05 +07:00
sgschantz
ce0dc60a18 added KMContext, cleaned up some header comments 2023-05-16 15:22:29 +07:00
sgschantz
13f0055ac9 comment cleanup 2023-05-15 08:50:36 +07:00
sgschantz
1566e06bea broke out CoreActionHandler, new path through InputMethod for Keyman Core action processing 2023-05-05 12:52:18 +07:00
sgschantz
10bf9af6df fix isClientAppLegacy which was always returning true and add unit tests for it 2023-04-11 09:05:52 +07:00
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