The implementation of `ok_for_single_backspace` checked the current
action_item multiple times. However, we already know that that
item is `KM_KBP_IT_BACK` because the only place this method gets
called is from the `process_backspace_action` method. So basically
this method always returns `FALSE`. "Fixing" this method to check
the next action_items makes things fail.
Removing this method since it doesn't do anything except burn
processing cycles...
Fixes#5614.
The name json.hpp conflicts with the JSON for Modern C++ library that
is also used by Developer. Renames json.hpp and json.cpp to jsonpp.hpp
and jsonpp.cpp aka "JSON Pretty Printer".
Debian reproducibility testing runs a slightly different package
build that seemingly doesn't set the `DEB_BUILD_MULTIARCH` variable.
This change introduces our own environment variable to detect
package builds so that we can skip the ibus-keyman integration
tests that require running an X server.
This change modifies the `run-tests.sh` script so that tests
run on both Wayland (if supported) and X11 unless
`--no-wayland` or `--no-x11` is specified.
This change also adds the new argument `--wayland` to the
`ibus-keyman-tests` executable which runs the tests under
Wayland.
Note that running Wayland tests is only possible in Ubuntu 21.10+
because it requires a version of `mutter` that supports the
headless option which got added in mutter 40.
This allows to use Keyman with the Wayland display server.
One thing that doesn't yet work completely with this change is
caps-lock.
Partially implements #4273.
This change will hopefully help some tests that occasionally fail
on TC. After setting the options during the test setup we sync the
settings before running the test scenario.
This also fixes a failing test (`048 - modifier keys keep context`)
if surrounding text is not supported. If the user presses the
capslock key we shouldn't reset the context if no rules match.
Fixes#5613.
Previously we overwrote our test data, so we basically ran the same
test repeatedly under different names.
Properly running them showed some failures which this change also
fixes or skips.
This change adds integration/regression tests for ibus-keyman. It
re-uses the unit tests that we have for core.
Also modifies one test so that the context doesn't use characters
used in the keyboard. This makes it easier to setup in ibus-keyman
tests.
This will allow to use the array in unit tests.
# Keyman Conventional Commit suggestions:
# - Consider appending the text ". Fixes#5613" to your commit message.
This fixes typing `n>` with sil_ipa keyboard which no longer output
the expected `ŋ` because pressing the shift key reset the context.
For modifier key presses we now exit `KMX_ProcessEvent::ProcessEvent`
early.
This change also removes a redundant line from engine.c. Clearing
the context happens in `reset_context()` again if necessary.
Fixes#5591.
This change replaces the deprecated `g_type_class_add_private`
and `G_TYPE_INSTANCE_GET_PRIVATE` with `G_DEFINE_TYPE_WITH_PRIVATE`
and the generated method `km_service_get_instance_private`.