Commit graph

3302 commits

Author SHA1 Message Date
Marc Durdin
d135974606 fix(developer): default target name for x64 projects 2019-11-29 09:57:01 +00:00
Marc Durdin
6af6c0adb8 fix(developer): kmcomp.x64 had debug data embedded 2019-11-29 09:03:32 +00:00
Marc Durdin
2a763470dd feat: add x64 compiler to installer 2019-11-29 05:02:49 +00:00
Marc Durdin
d4269b132a chore: potential pch build fail workaround 2019-11-28 16:04:52 +00:00
Marc Durdin
dd0ee48a78 chore: add unit test to build 2019-11-28 09:47:20 +00:00
Marc Durdin
8f21a6bcff feat(developer): x64 compiler
unit test for structure sizes. This validates that the Pascal and C++
structure definitions are identical in size for each platform that they
are compiled for (x86 and x64).

Note that this uncovered an existing discrepancy in FILE_KEYBOARD. ;-)
2019-11-28 09:43:46 +00:00
Marc Durdin
4645f2e253 feat(developer): complete 64-bit support 2019-11-28 18:39:56 +11:00
Marc Durdin
fb95c0f74f feat: model editor lifecycle 2019-11-28 14:13:29 +11:00
Marc Durdin
4804c11592 feat(developer): Model editor, first brush strokes 2019-11-25 15:00:21 +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
5d481489d3 chore: history, Makefile macros 2019-11-18 09:55:28 +11:00
Marc Durdin
e0767f2aeb fix(developer): use size_t instead of long 2019-11-17 09:16:08 +11:00
Marc Durdin
8c03b95e99 chore: gitignore 2019-11-17 09:15:48 +11:00
Marc Durdin
33ede3e8b0 chore(developer): config kmcomp build paths 2019-11-17 09:08:33 +11:00
Marc Durdin
e3c107d3a7 chore(developer): config build paths 2019-11-17 08:52:30 +11:00
Marc Durdin
6e171f8f47
Merge pull request #2334 from keymanapp/fix/developer/2199-kmcomp-merge-platform-support
fix(developer): keyboard_info merge mobile wrong
2019-11-15 13:47:22 +11:00
Marc Durdin
8cdd68d88c chore(developer): history.md 2019-11-15 11:17:17 +11:00
Marc Durdin
5513385edf chore(windows): history.md 2019-11-15 11:16:37 +11:00
Marc Durdin
0bb8f68e10
Merge pull request #2330 from keymanapp/fix/windows/2270-on-screen-keyboard-position-wrong
fix(windows): OSK restores to wrong monitor
2019-11-15 11:11:02 +11:00
Marc Durdin
773ed6224b fix(developer): keyboard_info merge mobile wrong
The .keyboard_info merge of `platformSupport` would not always give the
right result, for .js keyboards. We have a certain lack of information
in the .js which makes it a little tricky to determine precisely what
the set of supported platforms are. Thus, if we find a .js within a
.kmp, we'll assume it supports mobile; if we find a .js by itself,
we'll assume it supports web. (Thus, a keyboard that builds a .js
is assumed to always support web -- but not necessarily mobile now).

Some keyboards that have incorrectly added a .js into a package, e.g.
sil_cipher_music, will be marked as supporting mobile even though they
don't. The correct fix here is to remove the .js from the package for
that keyboard.
2019-11-13 13:23:55 +11:00
Marc Durdin
13567d2a76 fix(windows): focus is incorrect for CEF
The focus code paths for Chromium frames (CEF4Delphi) were incorrect.
The return value for preventing focus on navigation events was
inverted, and then other code was attempting to work around this
inversion, wrongly. Fixed the root issue of the inverted test (it would
help if the parameter cefSetFocus was known as `Handled` rather than
`Result`!) and then the remaining code pathways became far simpler.

Fixes #2314.
2019-11-13 10:44:23 +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
fa3f9bb279
Merge pull request #2316 from keymanapp/fix/windows/1680-keyman-not-working-with-skype
fix(windows): Keyman was not working with Skype
2019-11-11 16:37:28 +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
eeb797bf12
Merge pull request #2294 from keymanapp/fix/developer/2256-touch-editor-platform-crash
fix(developer): crash when deleting selected platform in code view
2019-11-06 18:44: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
a36b6d3557 fix(developer): nul in context caused incorrect deletion for 10.0 2019-11-06 07:00:03 +11:00
Marc Durdin
062ec7cdca fix(developer): crash when deleting selected platform in code view 2019-11-06 06:37:17 +11:00
Marc Durdin
26124da476 fix(developer): title of Online Update dialog was wrong 2019-11-05 06:31:33 +11:00
Marc Durdin
08f9a168ee refactor(developer): rename references post-refactor 2019-11-04 20:40:04 +11:00
Marc Durdin
e6d377d417 refactor(developer): move developer-only units out of global 2019-11-04 20:37:10 +11:00
Marc Durdin
44ffa23700 feat(windows): Command line app to test issue around #1680 2019-11-01 05:39:23 +11:00
Marc Durdin
19c210e6d4 chore(developer): Test controlled scroll of grid on 10.3 2019-10-29 15:05:24 +11:00
Marc Durdin
fff86bc1cf fix(windows): RSP-19902 was fixed in Delphi 10.3 so unwind workaround 2019-10-28 09:28:20 +11:00
Marc Durdin
195faf5603 docs(windows): Tweak Delphi version references 2019-10-25 21:14:32 +07:00
Marc Durdin
f3155a488e fix(windows): Fix path for Delphi 10.3 IDE in devtools 2019-10-25 21:14:06 +07:00
Marc Durdin
efa2c166d4 [Windows] Update README 2019-10-25 06:06:19 +07:00
Marc Durdin
83288a056a [Windows] Support either Delphi 10.2 or 10.3 via defines 2019-10-25 06:01:17 +07:00
Marc Durdin
9c5e30d82a [Windows] Update build scripts, compiler conditionals, and address hints arising with move to Delphi 10.3.2 2019-10-24 20:43:17 +07:00
Marc Durdin
63fbe8e5cf [Windows] Address review comments 2019-10-24 07:22:21 +07:00
Marc Durdin
4f22d497ff [Windows] fix comment 2019-10-24 07:02:12 +07:00
Marc Durdin
17f870b096 [Windows] Address review comments 2019-10-24 06:32:20 +07:00
Marc Durdin
b01da5cb16 [Windows] Add version.rc and manifest.xml to def-clean target 2019-10-24 06:30:17 +07:00