From #10403.
As of #10403, the app_context is correctly updated to match the new reality after actions are processed by the app, but only when we are using normalization -- the actions_normalize code makes the update. If normalization is not used (i.e. KMN keyboards), then app_context gets out of sync. We need to update the app_context to match the cached_context in this situation -- a relatively simple transform because we just app_context.pop_back actions->code_points_to_delete times, and then append each actions->output USV to app_context (no need to worry about markers).
Plus unit tests of course.
|
// ******************************************************************************** |
|
// TODO: if we don't apply normalization, we should still fixup the app_context |
|
// ******************************************************************************** |
From #10403.
As of #10403, the app_context is correctly updated to match the new reality after actions are processed by the app, but only when we are using normalization -- the actions_normalize code makes the update. If normalization is not used (i.e. KMN keyboards), then app_context gets out of sync. We need to update the app_context to match the cached_context in this situation -- a relatively simple transform because we just app_context.pop_back actions->code_points_to_delete times, and then append each actions->output USV to app_context (no need to worry about markers).
Plus unit tests of course.
keyman/core/src/actions_normalize.cpp
Lines 28 to 30 in 39f0813