Commit graph

244 commits

Author SHA1 Message Date
Marc Durdin
146dd0acc5 fix: coverity reports for mcompile 2020-09-30 14:53:47 +10:00
Marc Durdin
1df49317c9 fix(windows): coverity reports for mcompile 2020-09-30 14:50:22 +10:00
Marc Durdin
301a76c88a fix(windows): upgrading transitional profiles
Relates to #3561.

If a keyboard is installed for a transitional profile but another
keyboard is already installed for that profile, then Keyman would
crash, expecting the transitional profile to be missing.
2020-09-29 09:08:47 +10:00
Marc Durdin
5f59ee08ec chore(windows): make disabled arrows lighter 2020-09-28 15:05:58 +10:00
Marc Durdin
e34478c173 feat(windows): scrollable keyboard menu
Fixes #1843.

If there are so many keyboards installed that the menu would grow larger
than 3/4 of the screen height, then the menu will become scrollable.
2020-09-28 12:17:00 +10:00
Marc Durdin
d56567735e feat(windows): overflow menu for osk toolbar
Fixes #1659.

If there are too many keyboards to fit in the OSK toolbar, the toolbar
will now show a dropdown menu button and excess keyboards will be
visible there.
2020-09-27 13:07:45 +10:00
Marc Durdin
4fe1b16b1d fix(windows): cleanup hardcoded urls in tsysinfo
Relates to #3394.

Cleans up remaining hardcoded URLs in TSysInfo. Note that UfrmAbout.dfm
is removed because it is not used.
2020-09-25 11:11:14 +10:00
Marc Durdin
d5790ca9b6 fix(windows): cleanup pointer to int typecasts
Fixes #3084.

This does two things:

1. Cleans up a bunch of places where we used to use `(int)` typecasts
   for pointer math, which was problematic. We now use `(INT_PTR)` per
   MSDN https://docs.microsoft.com/en-us/windows/win32/winprog64/rules-for-using-pointers
   and then cast that down to `(int)` where necessary, e.g. when storing
   string lengths which are never going to be more than a few hundred
   characters! Doing this explicitly helps to clarify that we are aware
   of the typecast and believe it to be safe.

2. Adds in some build infrastructure for future use of Coverity Scan
   https://scan.coverity.com/ which we plan to use for further code
   quality updates. I have submitted the project to Coverity and are
   now waiting for approval so we can check results. Once we have
   approval, I do plan to add this to the nightly build (we need to
   keep submissions under 3 builds/day).

   Note: I have not yet added Keyman Core (Windows) to this project,
   nor are we currently building Keyman Core (macOS) or Keyman for
   Linux, but we should consider adding those in future.
2020-09-24 14:39:59 +10:00
Marc Durdin
ffc0b21a46 chore(windows): cleanup comments 2020-09-23 17:47:08 +10:00
Marc Durdin
ded5ed94ad fix(windows): cleanup 2020-09-23 17:44:26 +10:00
Marc Durdin
8fc7421391 fix(windows): add back support for disabling keyboards
Fixes #3560. This reworks the functionality for disabling
keyboards to work with the new TIP registration pattern. Much
of the code is the same as in Keyman 13, but there are some
significant differences, so it all needs to be reviewed.
2020-09-23 17:37:08 +10:00
Marc Durdin
f08fd6090d fix(windows): hint dialog was blank when elevated
Fixes #3110. The hint dialog must be launched unelevated. Refactors
the UCreateProcessAsShellUser unit into the TUtilExecute class.
2020-09-22 20:04:44 +10:00
Marc Durdin
f1b63cc95b
Merge pull request #3558 from keymanapp/fix/windows/language-name
fix(windows): lookup language name on create
2020-09-21 15:32:34 +10:00
Marc Durdin
5f3987b988 fix(windows): lookup language name on create
Lookup a language name from various sources rather than using the
BCP 47 code, where possible.
2020-09-04 13:17:10 +10:00
Marc Durdin
9f2d99b5c7
Merge pull request #3552 from keymanapp/fix/windows/upgrade-profile-scenarios
fix(windows): upgrade of profiles from 13.0
2020-09-04 11:33:23 +10:00
Marc Durdin
2df50c07ba
Merge pull request #3545 from keymanapp/fix/windows/3485-canonicalization
fix(windows): BCP 47 tag canonicalization
2020-09-04 11:33:09 +10:00
Marc Durdin
3d65466cff
Merge pull request #3543 from keymanapp/fix/windows/simplify-profile-uninstall
fix(windows): simplify profile uninstall
2020-09-02 16:53:19 +10:00
Marc Durdin
edfabc5447
Merge pull request #3542 from keymanapp/feat/windows/map-installed-bcp47
feat(windows): map installed bcp47
2020-09-02 16:53:09 +10:00
Marc Durdin
69227beb2a fix(windows): upgrade of profiles from 13.0
This upgrades a 11.0-13.0 install to the 14.0 model for registered TIPs.
It does not yet deal with transient TIPs or disabled keyboards (these
will come in a separate PR). There is also more tidy up coming in a
future PR for language names.
2020-09-02 16:46:58 +10:00
Marc Durdin
6d5ccbd719 fix(windows): add tests and improve canonical options 2020-09-01 09:41:33 +10:00
Marc Durdin
84f0219541 fix(windows): canonicalization
Reworks the BCP 47 tag canonicalization algorithm.
2020-09-01 08:42:56 +10:00
Marc Durdin
be16688a0c
Merge pull request #3539 from keymanapp/fix/windows/transient-languages-keyman32
fix(windows): add transient profile support to keyman32
2020-08-31 17:31:19 +10:00
Marc Durdin
4507ab6324
Merge pull request #3524 from keymanapp/feat/windows/1456-select-language-at-keyboard-install
feat(windows): select language at keyboard install
2020-08-31 17:30:04 +10:00
Marc Durdin
b3f5f586cb fix(windows): simplify profile uninstall 2020-08-31 16:32:53 +10:00
Marc Durdin
b1b3f62b18 feat(windows): map installed bcp47
This PR handles the case where Windows installs a BCP 47 tag that may not
match our tag 100% precisely. In this case, Keyman maps the Windows BCP 47
tag to the in-memory data for consistency. It also allows for install of
more complex tags.
2020-08-31 14:11:25 +10:00
Marc Durdin
603e3aa04f fix(windows): add transient profile support to keyman32
Keyman32/keyman64 were not reading the new 'Transient Language Profiles'
key which is needed with Keyman 14. Minor tweak to ensure we don't scan
through more profiles than necessary when activating tip in aiTIP.cpp also.
2020-08-31 11:17:48 +10:00
Marc Durdin
6c1d93e399 chore: address review comments 2020-08-28 15:37:44 +10:00
Marc Durdin
6cf3368ada feat(windows): select language at keyboard install
For packages with a single keyboard, we now make it
possible to select a language at install time.

Fixes #1456.
2020-08-27 13:59:11 +10:00
Marc Durdin
7f8457dbce fix(windows): remove unneeded OriginalBCP47Tag 2020-08-26 14:29:50 +10:00
Keyman Server
97a16e8535 feat(windows): profile installation - engine 2020-08-26 11:06:10 +10:00
Marc Durdin
d030602e3d fix(windows): more localedtd cleanup 2020-07-29 08:04:32 +10:00
Marc Durdin
2563624810 fix(windows): more i18n cleanup:
* Remove localedef.dtd file and infrastructure
* Remove ftMessages enum value
2020-07-29 08:03:30 +10:00
Marc Durdin
47254cbd0a fix(windows): i18n of strings in Font Helper 2020-07-29 08:02:48 +10:00
Marc Durdin
025adb865a chore(windows): fix broken build 2020-07-29 08:01:22 +10:00
Marc Durdin
39edce5986 feat(windows): generate message consts at build time 2020-07-28 13:05:12 +10:00
Marc Durdin
6b748239ed chore(windows): cleanup of i18n
- remove expandidentifiers
- remove messages.txt
- remove desktop.pot
- remove stock message ditor
- stop using captions altogether for translation
2020-07-27 16:54:23 +10:00
Marc Durdin
7552c91f94 fix: Install2 methods need new interfaces 2020-07-06 15:19:00 +10:00
Marc Durdin
a0c0141092 feat: more work towards bootstrap 2020-07-03 13:42:12 +10:00
Marc Durdin
6eb516f9d9 chore(windows): more cleanup 2020-05-15 12:46:54 +10:00
Marc Durdin
8ee92d1927 fix(windows): add dependency for keyman.dpr 2020-05-15 08:30:58 +10:00
Marc Durdin
080f03860e
Merge pull request #3083 from keymanapp/fix/windows/2759-force-output-keystroke-fails
fix(windows): force output keystroke failure
2020-05-11 06:09:09 +10:00
Marc Durdin
dc5cab612b chore: add comment post review 2020-05-08 16:57:20 +10:00
Marc Durdin
79ae25f966 fix(windows): support kmtip 2020-05-08 16:45:04 +10:00
Marc Durdin
5e7df2e051 fix(windows): sentry cef shutdown interactions
When Sentry is trying to shutdown an app which has CEF windows active,
the main process can hang waiting for the CEF renderer etc processes to
shutdown. Instead, we now rely on the child (CEF renderer etc) processes
to shutdown when their parent process aborts, with a watchdog thread, and
then abandon everything in the parent process with ExitProcess. This is
more reliable, especially with nastier crashes like memory corruption or
stack corruption.
2020-05-08 14:42:39 +10:00
Marc Durdin
acc53706ca fix(windows): force output keystroke failure
If a keyboard emits some actions but then requests that the
default keystroke also be emitted, Keyman was failing to
emit the queued actions. Fixes #2759.
2020-05-05 17:27:47 +10:00
Marc Durdin
3f98c6027b fix(windows): decxstr was not checking start of string properly 2020-05-04 16:18:31 +10:00
Marc Durdin
e9867aaf08 fix(windows): additional project files 2020-05-01 17:16:34 +10:00
Marc Durdin
34cb049344 fix(windows): add windows unit 2020-05-01 17:15:35 +10:00
Marc Durdin
156c2685c3 fix(windows): add LARGEADDRESSAWARE flag for all CEF processes 2020-05-01 16:38:52 +10:00
Marc Durdin
f4a9fe1769 fix(windows): add crashpad_handler.exe to installers 2020-04-18 16:51:51 +10:00