Commit graph

431 commits

Author SHA1 Message Date
rc-swag
d2b9c7d1fe chore(windows): Merge branch 'epic/win-arm' into feat/windows/11905/keymanx64-keymanarm64 2025-11-03 09:59:10 +10:00
Marc Durdin
6ed0d6b280 chore(windows): upgrade VC++ projects to v143 (VS2022)
Test-bot: skip
Build-bot: skip release:developer,windows
2025-10-31 13:28:25 +01:00
rc-swag
ccad218351 chore(windows): Merge branch 'epic/win-arm' into feat/windows/11905/keymanx64-keymanarm64
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2025-10-28 16:51:53 +10:00
rc-swag
472c8e2027 feat(windows): add keymanarm64.def update gitignore 2025-10-22 22:20:48 +10:00
rc-swag
9a7cb42fc7 feat(windows): add keymanarm64.def 2025-10-20 16:03:39 +10:00
rc-swag
1340c4f9e5 feat(windows): add arm64 to wxs and core build
Add cross-arm64 and cross-x64 build
Add the arm64 binaries to the wxs installers with guids
update build.sh files
2025-10-14 16:00:40 +10:00
Marc Durdin
50ffbb2722 fix(windows): osk: handle simulated left Control event when AltGr pressed
When a European layout is active, and the user presses AltGr, Windows
generates a simulated VK_LCONTROL event alongside the VK_RMENU event.
This was causing the OSK to show LCtrl as depressed alongside RAlt, so
the OSK would show the wrong modifier layer, which was unhelpful and
confusing to the end user.

It is possible to detect the simulated VK_LCONTROL in the WH_KEYBOARD_LL
hook, because the scan code generated is 0x21D, instead of 0x1D.
Warning: this is not a documented value. (But, this 0x21D scan code is
not passed to the WM_KEYDOWN event!) Therefore, we use Keyman's existing
kmnLowLevelKeyboardProc to pass modifier key events on to the visual
keyboard.

This patch handles only this specific scenario, by watching for that
specific scan code in the new handler in the UfrmOSKOnScreenKeyboard
module, together with some minor refactoring so that it fits neatly.

A future improvement would be to have all modifier key processing go
through this new handler, and eliminate the timer-based polling of the
keyboard. However, there is some additional risk around missing events,
leading to 'stuck modifiers'.

Fixes: #14890
Build-bot: skip release:windows
2025-10-08 14:32:40 +02:00
rc-swag
f73e16cfce feat(windows): update binary names and kmtip
Update the binary arm names to match the spec.
Also updated kmtip project to build arm64 dll
2025-10-02 16:45:36 +10:00
rc-swag
5ac167977b Merge branch 'epic/win-arm' into feat/windows/11905/keymanx64-keymanarm64 2025-10-01 14:11:23 +10:00
rc-swag
ae441f16b5 feat(windows): add sentry.arm64.dll and lib 2025-09-30 13:12:34 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
rc-swag
1c41bdb669 modify dll base address for 64bit arm and x64 2025-07-31 17:45:54 +10:00
rc-swag
99d9d68e66 Initial addition of arm64 configuration 2025-07-31 16:30:23 +10:00
Marc Durdin
156bdcdd8a maint(common): rename and move builder_if_release_build_level 2025-06-16 06:45:42 +10:00
Marc Durdin
870d37f56b maint(developer): only copy .dbg/.pdb on release buildLevel 2025-06-16 05:40:30 +10:00
rc-swag
b2463be19a fix(windows): review comments 2025-03-28 10:36:46 +10:00
rc-swag
79b15dfeb4 fix(windows): move thread check guard
Removed the redundant thread check guard on load modifer. Added guard
to reading the option. Also fixed some formating. and made the load
modifier private.
2025-03-27 16:05:28 +10:00
rc-swag
e3f2e85945 fix(windows): reload right modifier key option
Fixes: #13440

This refactors the cached of the right modifier key used in hotkeys
option. In the lowlevelhook you couldn't reset the cached value.
It is now part of the hotkeys class which is more logical encapsulation
the logic assocaited with the hotkeys.
2025-03-27 13:30:05 +10:00
Marc Durdin
d83454ab77 chore(windows): ensure dependencies for keyman32 exclude core:wasm
Fixes: #13374
2025-02-28 17:52:27 +01:00
rc-swag
608d2cdde8 fix(windows): rename TIPGetContextIsEx TIPGetContextIsSelected
rename TIPGetContextIsEx TIPGetContextIsSelected
2025-01-28 11:19:42 +10:00
rc-swag
15b522e3f3
fix(windows): review comment name consistency
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-01-28 09:55:08 +10:00
rc-swag
5034ce8830 fix(windows): remove blank lines 2025-01-24 14:06:36 +10:00
rc-swag
69c0f3861e fix(windows): add GetContextEx and TIPProcessKeyEx
Add the api calls that include the output bool isSelected, which is
true if text is selected.
2025-01-24 14:03:09 +10:00
Marc Durdin
4c3b2132ee chore(core): remove km_core_keyboard_load API
Fixes: #12497
2024-12-04 13:38:07 +07:00
rc-swag
0ff0deaf6a
feat(windows): load keyboard file to memory blob
Fixes: #12500
Cherry-pick: #12684
2024-11-28 14:28:10 +01:00
rc-swag
e41a8cbbb6
Merge pull request #12259 from keymanapp/feat/windows/11471/right-modifier-hk
feat(windows): add right modifier included in hotkey optional functionality
2024-09-06 13:40:14 +10:00
rc-swag
10c343fc43 feat(windows): change verb use to allow for clarity 2024-09-02 13:31:21 +10:00
rc-swag
f0827b4d1e
Merge pull request #12252 from keymanapp/feat/windows/11471/remove-old-flags-modifier
feat(windows): Remove hotkey related feature flags
2024-09-02 12:59:12 +10:00
rc-swag
d70ad35691 chore(windows): Merge branch 'feat/windows/11471/remove-old-flags-modifier' into feat/windows/11471/right-modifier-hk 2024-09-02 11:46:00 +10:00
rc-swag
20a9ecdb78 feat(windows): address review comments 2024-09-02 11:33:55 +10:00
rc-swag
ee68b28650 chore(windows): Merge branch 'master' into fix/windows/kmdisplayim-validated-im-visibility 2024-08-27 11:27:19 +10:00
rc-swag
500c800bb4 feat(windows): remove developer debug logging 2024-08-27 11:01:50 +10:00
rc-swag
558636886c feat(windows): remove left modifier only bit flag 2024-08-26 19:39:47 +10:00
rc-swag
f1d9f53048 feat(windows): add right modifier included in HotKey 2024-08-22 16:32:39 +10:00
rc-swag
05d52463f9 feat(windows): remove registerhotkey and cache modifier
Remove the feature flags that allows the use of cached modifier for
hotkeys. Remove the feature flag that uses the Win 32 API
RegisterHotkeys.
2024-08-22 15:45:23 +10:00
rc-swag
c48a4a7242 feat(windows): Use RegisterHotkey only for chirl mode 2024-08-21 11:56:55 +10:00
rc-swag
3326ac2c6b feat(windows): remove check for non-chiral vkey 2024-08-20 15:14:57 +10:00
rc-swag
65b9e49bac feat(windows): remove old UseRegisterHotkey 2024-08-19 18:48:06 +10:00
rc-swag
b7b17686ec feat(windows): add rmodifier hk to keyman config UI 2024-08-19 14:01:43 +10:00
rc-swag
be55dabdc4 feat(windows): add right modifier key option pt1 2024-08-16 22:15:42 +10:00
rc-swag
64efd2a7b4
Merge pull request #11973 from keymanapp/chore/windows/11925/deprecate-qit-vshiftdown
chore(windows): remove QIT_VSHIFTDOWN QIT _VSHIFTUP
2024-08-05 13:07:21 +10:00
rc-swag
336db7b5c5 fix(windows): handle IM bigger than app window 2024-08-02 11:15:33 +10:00
rc-swag
13fdfe9f54
fix(windows): review comment suggestions
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2024-08-02 10:33:38 +10:00
Marc Durdin
0175f906c8
Merge pull request #11921 from keymanapp/refactor/windows/cleanup-engine-logging
refactor(windows): clean up logging
2024-07-27 11:31:37 +10:00
rc-swag
915f710b44 chore(windows): remove posting keydown up events to IM
The code has already been commented out so this was more a clean up
of deadcode. WM_KEYDOWN events are not expected by the IM window anyway.
2024-07-24 17:05:40 +10:00
Marc Durdin
1d0f5cacd0
Apply suggestions from code review
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2024-07-23 17:31:14 +10:00
Marc Durdin
05edc8a7ce
Merge branch 'master' into refactor/windows/cleanup-engine-logging 2024-07-23 17:29:55 +10:00
Marc Durdin
489778f455
chore: Update windows/src/engine/keyman32/k32_dbg.cpp
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2024-07-23 15:15:53 +10:00
Marc Durdin
7875950e00
chore: Update windows/src/engine/keyman32/k32_dbg.cpp
Co-authored-by: rc-swag <58423624+rc-swag@users.noreply.github.com>
2024-07-23 15:14:57 +10:00
rc-swag
4e25bbe2e0
Merge pull request #11884 from keymanapp/fix/windows/7870/add-is-text-selected-flag
fix(windows): add text selected bool emit backspace key when text selected in TSF
2024-07-23 11:19:41 +10:00