fix(developer): stack overflow when compiling non-web keyboard

Fixes #7030.

Prevents a stack overflow / loop when the web target is removed from a
keyboard and it has already been tested on web, and the user presses the
Compile button.
This commit is contained in:
Marc Durdin 2022-08-03 12:53:03 -05:00
parent 0a22acd0e4
commit f9240d76a2

View file

@ -67,6 +67,7 @@ uses
UfrmKeymanWizard,
UfrmKeyboardFonts,
UfrmMDIEditor,
UKeymanTargets,
UmodWebHttpServer,
Keyman.Developer.System.ServerAPI,
Keyman.Developer.UI.ServerUI,
@ -133,7 +134,8 @@ begin
if Result and
TServerDebugAPI.Running and
TServerDebugAPI.IsKeyboardRegistered(ProjectFile.TargetFileName) then
TServerDebugAPI.IsKeyboardRegistered(ProjectFile.TargetFileName) and
(ProjectFile.Targets * KMWKeymanTargets <> []) then
TestKeymanWeb(True);
end;
@ -235,7 +237,13 @@ begin
Exit(False);
wizard := editor as TfrmKeymanWizard;
if ProjectFile.Targets * KMWKeymanTargets = [] then
Exit(False);
FCompiledName := ProjectFile.JSTargetFilename;
if FCompiledName = '' then
Exit(False);
if not TestKeyboardState(FCompiledName, FSilent) then
Exit(False);