Fixes#5574.
When a user presses Win+M, Win+D, or clicks the desktop button on the
taskbar, all windows get minimized, even those that do not have the
WS_MINIMIZE flag. Delphi modal dialog forms are not expecting this, and
do not restore correctly later.
This scenario arises only when a form is created with a `nil` owner and
then `form.ShowModal` is called.
The fix was already implemented on Splash and HTML forms, but
differently; I have chosen to use the implementation from the Splash
form as it is simpler and seems to work correctly.
The maximum command line length in Windows is 2047 characters. In Delphi
it appears to be 1024 characters. In debugging, I hit that 1024
character limit which was pretty annoying.
So this patch allows us to use an `@file` parameter to put command line
parameters into a text file and read from that instead. It's probably a
little hacked together and could be turned into a class that we could
usefully reuse in all our other command line apps.
I looked around for a generic Delphi solution but did not find an
existing one that was any good.
Low priority, not required for beta, but putting it up because I've done
the work already.
Refactors visual keyboard import from kmx to use Keyman Core, and at the
same time removes any UI interactions or direct Windows dependencies
from the process.
Fixes#5440.
Currently, the behavior of `use()` and `match` for KeymanWeb compiled
keyboards is not identical to the Windows (or Core) behavior. The
example keyboard in #5440 generates 'foo' instead of 'abc' on web.
This fixes that by ensuring that `match` is not called when `use()` is
found in a group rule match.
Updates Keyman for Windows and Keyman Developer sources so that they
build under Delphi 10.4. No validation has been performed to ensure that
there are no other issues. The intent here is to get a baseline build
working.
Note also IMSample.vcxproj which has its WinSDK version updated for
VS2019.