PR #7449 added modifier event to make ensure modifer events
where sent to the serializer even if the key stroke was determined
the key stroke did not need seralizing. However, a logic error was made
trying to use the exiting 'Flag' however this was not set in the
!UseCachedHotkeyModifierState case. This change adds helper function
to simply check if the key is a modifier key and send it to the
event seralizer in that case. Separating from the other logic which
is more concerned with handling hotkeys.
Regression introduced in #7661 (17.0 alpha), #7825 (16.0 beta).
When shutting down CEF cleanly, we needed to pause the form destruction
sequence in order for CEF to complete its shutdown tasks. However, for
a dialog form, it will commonly be closed by setting `ModalResult` to a
non-zero value. In our fix, we inadvertently lost any `ModalResult`
value by calling `Close` after CEF was finished, which sets
`ModalResult` to `mrCancel` (value of 2).
This fix caches the `ModalResult` value, and if non-zero, uses it
instead after CEF shuts down, to achieve the same result.
The red colouring of the "Languages:" label was driven by a xml
element which was taken from a registry value whose cache is not
refreshed without restarting the app. The new xml element is
driven by registery languages value that is refreshed straight
away.
The Keyboard layouts tab: When a keyboard is disabled
Just the details text on the right is 'greyed' out. The buttons
on the left our no longer greyed out except for 'Add/remove'
which is now disabled.
Fixes#7879.
If we enter a search string that results in zero results, the grid
resize to one row attempts to select row zero. However, we prevent this.
This leaves the current row outside the range of valid rows, which means
the grid is in an invalid state.
This later causes a crash if the user attempts to mousewheel up. There
may be other similar crashes in this situation, but I haven't found any
yet.
Fix is to allow selection of row zero when there is only one row. I have
not found any problems caused by allowing this.
During package builds on Debian servers the build often failed
with an error related to X11 when running the tests. This change
skips the tests in `linux/ibus-keyman/src/test` when building
packages, similar to the way we already do it for the tests in
`linux/ibus-keyman/tests`.