Commit graph

43 commits

Author SHA1 Message Date
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
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
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
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
16d8970feb [Windows] Change destruction order for Keyman to avoid error reloading. Fixes #6060 2019-10-02 06:44:09 +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
692c64f659 Unnecessary file changes (version numbers) 2019-08-12 16:48: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
5dd0737185 [Windows] Use RegisterHotkey to (a) simplify hotkeys and (b) avoid serialization issues with modifiers 2018-12-17 13:45:19 +11:00
glasseyes
5654c935a2 rename build alltags in engine and buildtools 2018-11-12 16:14:28 +07:00
Marc Durdin
d8c45f25dc [Windows] Address review comments 2018-10-29 16:34:00 +11:00
Marc Durdin
d32b7d946a [Windows] Set security on programdata/keyman folder at install time 2018-10-19 10:51:54 +11:00
Marc Durdin
9b51f5f8bd [Windows] Improve shared buffer security 2018-10-19 06:19:30 +11:00
Marc Durdin
738e1946a6 [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps
[Windows] More tidyup and robustness for metro app support - debug cleanup and serialization of input (not quite finished)

[windows] Refactor serialized input code when used with key event thread model

[windows] Add consistent precompiled headers for other projects

[windows] Merge console window test into metro support

[Windows] Tidy up work and identify additional TODOs for metro-style app support

[Windows] Ensure error case falls through to default hook processing for console windows

[Windows] Refactor shared memory into memory mapped file so we can cross 32-64 bit boundary

[Windows] Tweaks to C++ security calls and parameters

[Windows] Start refactor of SerialKeyEvent* classes

[Windows] Rename to SerialKeyEventServer (refactoring)

[Windows] Complete refactoring of SerialKeyEventClient class

[Windows] Further encapsulation and cleanup with 'interfaces' to reduce header pollution

[Windows] Complete serialization fix with move of modifier state management from client thread to server thread to guarantee consistency

[Windows] Replace atom-based keyboard switching with memory mapped file indexed to avoid security constraints

[Windows] Fixup Left Alt+Shift interaction with serializer

[Windows] Use Windows 8.1 SDK for test
2018-10-18 20:00:49 +11:00
Marc Durdin
b3b5c244ea [Windows] Refactor Windows debug logging to use Event Tracing for Windows 2018-10-16 10:23:54 +11:00
Marc Durdin
f6dfa1c8cb [Developer] Render default language icon for imported keyboard automatically 2018-09-23 10:01:31 +10:00
Marc Durdin
d2a61c78b6 [Windows] Reduce repetition of version information for simpler major version updates 2018-09-11 06:02:33 +10:00
Marc Durdin
4011d3f099 11.0 manifest.xml 2018-07-16 20:02:20 +10:00
Marc Durdin
c3830bcea6 11.0 version.rc 2018-07-16 20:02:03 +10:00
Marc Durdin
c5e553782e Fixes #975. Fixes #996. Installation of keyboards in Windows avoids some side effects with refresh and additional system keyboards. 2018-06-18 16:08:35 +07:00
Marc Durdin
f6b2977aac Fixes #886. Fixes #887. BCP 47 tags will now be canonicalized and scripts applied where possible and needed, automatically, during keyboard installation 2018-05-24 16:04:33 +07:00
Marc Durdin
3c24705d0a
Merge pull request #827 from keymanapp/windows-bcp47-complete-script-if-missing
[windows] Add script lookup to "Add Language" dialog so end user experience is improved.
2018-05-08 08:56:02 +07:00
Marc Durdin
06440d8867 Fixes sillsdev/keyman-issues#5607 sporadic crash in Keyman when updating keyboard icon in OSK 2018-05-07 15:29:33 +07:00
Marc Durdin
d8b2ec9599 Add extra project references 2018-05-07 15:08:12 +07:00
Marc Durdin
800042af65 Fixup other projects 2018-04-30 14:24:11 +07:00
Marc Durdin
324335771e Refactor kmxfile constants into kmxfileconsts to avoid pulling in too many dependencies 2018-02-15 16:18:51 +07:00
Marc Durdin
9b026c423e x64 support for COM API - first steps: build of kmcomapi.dll for x64, and rename of registry keys 2017-12-24 13:47:56 +07:00
Marc Durdin
d23182efa8 Refactor KMXFileLanguages into LanguageCodeUtils to avoid excessive dependencies 2017-12-15 15:41:29 +07:00
Marc Durdin
926569c6b1 Make border more visible on active keyboard icon in toolbar 2017-10-03 13:25:49 +07:00
Marc Durdin
ddb0557dfd Rework toolbar in Keyman On Screen Keyboard to show all keyboards. Note: unfinished is what to do when too many keyboards to fit; selection colour is poor 2017-09-30 10:34:34 +07:00
Marc Durdin
3da89424ed Cleanup of dev-time install and debugging, removal of commented code 2017-09-20 12:08:46 +07:00
Gabriel Wong
298b31b361 Remove hard coded install paths 2017-09-04 12:11:42 +07:00
Marc Durdin
356b9ad568 KeymanDebugLog helper app for live debug log watching 2017-08-08 13:06:09 +07:00
Marc Durdin
b65b982584 Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121)
* Keyman for Windows 10.0 Open Source

* Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2

git-subtree-dir: windows/src/ext/jedi/jedi
git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24

* Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd

git-subtree-dir: windows/src/ext/jedi/jcl
git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243

* Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4

git-subtree-dir: windows/src/ext/jedi/jvcl
git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3

* Add required .res files

* Add required .res files

* Add docbook files (forced)

* Add required libxslt

* Add required jedi files

* Add installation files

* Tweak .gitignore for open

* CI

* Remove KMW from Developer source (#122)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Fixup release build and copy license, readme from kmw during build

* Remove obsolete build help documentation

* Keyman Engine 10 on Windows regression for shift states (#129)

* Improve #128 -- cleaner debug messages

* Fixes #127, shift state now resets correctly; and more work for #128

* Fixes #130 (#131)
2017-07-25 10:53:06 +07:00