Commit graph

149 commits

Author SHA1 Message Date
Marc Durdin
666fbc9072 fix(developer): touch layout editor character map integration
Fixes #2577.

The touch layout editor was not accepting characters inserted from
character map by double-clicking or using the menu, only by drag+drop.
2020-02-11 09:04:22 +11:00
Marc Durdin
1ebe2f5fa1 fix(windows): Windows touch keyboard would cancel on each keystroke
Fixes #2450. When Keyman serialized input, it would cause the touch keyboard to cancel
because the touch keyboard thought the received event meant the user was touching the
physical keyboard. This resolves that problem, using a watch timer to check the visibility
of the touch input panel.
2020-02-04 16:18:18 +11:00
Marc Durdin
fa3e4ae5a5 fix(windows): smp characters could break context
Fixes #2398.
2019-12-01 05:09:29 +00:00
Marc Durdin
9209adb45d refactor(windows): cleaned up hotkey change code
Just refactoring minor bits and pieces on this PR. Esp: removed the
unnecessary interrogation of TSF (yay!) and cached the debug flag so it
isn't checked on every single keystroke.
2019-11-20 06:47:44 +11:00
Marc Durdin
7321bc4300 chore: restore keyman.dproj; changes not required 2019-11-19 19:51:43 +11:00
Marc Durdin
89e54f5cb4 refactor(windows): Keyman::ProcessHotkeyChange
Remove duplicated code in ProcessProfileChange
2019-11-19 19:47:49 +11:00
Marc Durdin
ecd44063e7 feat(windows): left-only hotkeys
Fixes #364.

Hotkeys in Windows are currently implemented using RegisterHotkey.
However RegisterHotkey does not distinguish between left and right
modifier keys, which means that they override some keyboards' RAlt
combinations.

This feature reimplements hotkey support in the low level keyboard hook,
and adds a feature flag / debug flag Flag_UseRegisterHotkey to return
to the RegisterHotkey model if that is so needed.

I have made minimal refactoring changes to this code, although there
are certainly functions here which could be improved.

I have flagged a couple of potential improvements with TODO.
2019-11-19 17:30:28 +11:00
Marc Durdin
3ebddd9f25 fix(windows): OSK restores to wrong monitor
If the On Screen Keyboard was closed when on a monitor other than the
primary monitor, it would restore to the primary monitor in the top-
left corner instead of the previous location.

This fix allows the OSK to be restored to another monitor, but still
avoids positioning the window off screen if the monitor has been
disconnected.

Fixes #2270.
2019-11-13 08:28:14 +11:00
Marc Durdin
41e87e227f
Merge pull request #2297 from keymanapp/fix/windows/2147-exception-closing-keyman
fix(windows): Keyman was crashing sporadically
2019-11-12 16:38:32 +11:00
Marc Durdin
9073fcdecd fix(windows): Keyman was not working with Skype
Fixes #1680. This issue arose only on some systems where
permissions for Keyman registry keys were not being
set correctly.
2019-11-11 15:27:03 +11:00
Marc Durdin
b7d4e83270 chore(windows): unreferenced param in release build 2019-11-08 09:40:40 +11:00
Marc Durdin
be1b8f6457 chore(developer): tidy up from review comments 2019-11-07 17:31:03 +11:00
Marc Durdin
fc330e621a fix(windows): tweak preprocessor conditional 2019-11-07 17:24:56 +11:00
Marc Durdin
ccc6498739 fix(windows): Keyman was crashing sporadically
Fixes #2147.

This potentially addresses the issues reported in #2147 where Keyman
would crash due to a race condition as a critical section was not
deleted before attempting to recreate it.

Some logging has been added for debugging these issues.

Also fixes memory leaks and another race on startup relating to loading
the taskbar icon.

There are still some known memory leaks because DLL_THREAD_DETACH is
not called for all threads before keyman32.dll is unloaded, so those
threads don't get the opportunity to clean themsselves up. However, the
key danger with the csGlobals critical section has been addressed.
2019-11-06 17:44:32 +11:00
Marc Durdin
8fb9d179c3 [Windows] Fix additional makefiles 2019-10-23 18:23:49 +07:00
Marc Durdin
950605e1fc [Windows] More manifest renames 2019-10-23 15:28:25 +07:00
Marc Durdin
6ddad89f33 [Windows] Fixup manifest.xml validity checks 2019-10-21 07:29:23 +07:00
Marc Durdin
d158648f1d [Windows] Remove further hardcoded version numbers 2019-10-21 07:01:11 +07:00
Marc Durdin
3a90f258da [Windows] Fix version.in file encoding back to Windows-1252 2019-10-21 06:43:13 +07:00
Marc Durdin
82e3a8528f [Windows] Cleanup version.txt 2019-10-21 06:05:16 +07:00
Marc Durdin
3f5de32e35 [Windows] Refactor version.txt to use constant templates and avoid needing to update with major version changes 2019-10-21 05:54:15 +07:00
Marc Durdin
6b6d5676cb [Windows] Enable logging of exceptions within keymanapi 2019-10-02 07:27:22 +10:00
Marc Durdin
16d8970feb [Windows] Change destruction order for Keyman to avoid error reloading. Fixes #6060 2019-10-02 06:44:09 +10:00
Marc Durdin
3589b90d2f [Windows] Add extra logging to help diagnose #2143. 2019-10-01 19:41:40 +10:00
Marc Durdin
d1f9389825 [Windows] Close down serial key event server after unhooking hooks, as low level keyboard hook relies on it. 2019-10-01 19:41:15 +10:00
Marc Durdin
bd9d6c5e4e [Windows] Elevate Keyman start if debugging is enabled. Partial fix for #2152. 2019-10-01 19:40:30 +10:00
Marc Durdin
31df712707 [Windows] If Keyman Desktop 11 and Keyman Developer 12 are installed together, Keyman Desktop will crash on startup. Fixes #2146. 2019-09-30 21:08:44 +10:00
Marc Durdin
da511a57ba More unnecessary file changes 2019-08-12 16:53:35 +10:00
Marc Durdin
eb236d7dfe Unnecessary file changes 2019-08-12 16:48:50 +10:00
Marc Durdin
692c64f659 Unnecessary file changes (version numbers) 2019-08-12 16:48:08 +10:00
Marc Durdin
bdca2f8516 Merge branch 'master' into windows-firstvoices 2019-06-12 13:55:26 +10:00
Marc Durdin
e6d614af15 [Windows] Keyman32/keyman64 should detach without cleanup on process termination (relates to #1723) 2019-06-03 09:34:08 +10:00
Marc Durdin
b6704eeff5 [Windows] Reorganise UI for Keyman Desktop for FirstVoices; add kmcomapi-win64-host; support custom images etc for oem products 2019-05-13 08:01:11 +10:00
Marc Durdin
836f8805d2 [Windows] 12.0 version files 2019-05-10 10:19:29 +10:00
Marc Durdin
3f4a80eab4 [Windows] Fix FieldWorks LT-19402, buffer overrun in GetDefaultKeyboardID for 64 bit 2019-04-24 15:12:56 +07:00
Marc Durdin
bfddf323ba [Windows] Remove debug code 2019-02-25 14:15:13 +11:00
Marc Durdin
eb92df40de [Windows] Fixes #1620. AltGr causes sticky Left Control when some Windows European layouts are installed. 2019-02-25 14:08:56 +11:00
Marc Durdin
ffebb60a92 [Windows] Fixes #1600. Keyman now handles backspace correctly again for SMP characters in TSF-aware apps 2019-02-19 15:29:09 +11:00
Marc Durdin
e48f547303 [Windows] Fix tabs to spaces, factor IsCapsLockOn function 2019-01-09 13:55:28 +11:00
Marc Durdin
08431e89ba [Windows] Add comments 2019-01-08 20:55:19 +11:00
Marc Durdin
5b60359aa2 [Windows] Fix Caps Lock header support 2019-01-08 20:41:29 +11:00
Marc Durdin
988a0917cb [Windows] Switching between Keyman keyboards in same language using TSF interface could fail 2019-01-08 20:33:36 +11:00
Marc Durdin
e67519b0d8 [Windows] Remove legacy API endpoints 2019-01-07 12:43:43 +11:00
Marc Durdin
16aba3ae8e [Windows] If a language was dynamically loaded by Windows, then the hotkey entry is never assigned when a keyboard is installed 2019-01-04 12:08:38 +11:00
Marc Durdin
5dd0737185 [Windows] Use RegisterHotkey to (a) simplify hotkeys and (b) avoid serialization issues with modifiers 2018-12-17 13:45:19 +11:00
Marc Durdin
62a8cab1ca
Merge pull request #1410 from keymanapp/windows-fix-1279
[Windows] Fixes #1279. Avoid crash when security software blocks Keyman Configuration from setting various registry values.
2018-12-11 13:20:53 +11:00
Marc Durdin
17c08d53f6 [Windows] Fixes #1336. Fixes #1270. Package info was not being read from JSON even when available which meant we lost Unicode values 2018-12-11 11:23:17 +11:00
Marc Durdin
6d8451b818 [Windows] Fixes #1279. Avoid crash when security software blocks Keyman Configuration from setting various registry values. 2018-12-10 18:08:17 +11:00
Marc Durdin
2aeec04f3e [Windows] Fix permissions for programdata\keyman folder during install so metro apps work correctly 2018-12-04 14:15:58 +11:00
Marc Durdin
318c73a9e1
Merge pull request #1286 from keymanapp/windows-kmtip-debugging-refactor
[Windows] Refactor and cleanup debug logging in kmtip; fix return value bug in initialising preserved keys
2018-11-30 06:25:07 +11:00