diff --git a/windows/src/desktop/kmshell/kmshell.res b/windows/src/desktop/kmshell/kmshell.res
index 310e5c6506..71c4dc0a98 100644
Binary files a/windows/src/desktop/kmshell/kmshell.res and b/windows/src/desktop/kmshell/kmshell.res differ
diff --git a/windows/src/desktop/kmshell/main/UfrmHTML.pas b/windows/src/desktop/kmshell/main/UfrmHTML.pas
index 2a1141ece6..ba6389c97b 100644
--- a/windows/src/desktop/kmshell/main/UfrmHTML.pas
+++ b/windows/src/desktop/kmshell/main/UfrmHTML.pas
@@ -46,14 +46,9 @@ type
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cmdPrintClick(Sender: TObject);
- procedure webNewWindow3(ASender: TObject; var ppDisp: IDispatch;
- var Cancel: WordBool; dwFlags: Cardinal; const bstrUrlContext,
- bstrUrl: WideString);
procedure cmdBackClick(Sender: TObject);
procedure cmdForwardClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure webKeyDown(Sender: TObject; var Key: Word; ScanCode: Word;
- Shift: TShiftState);
procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
private
cef: TframeCEFHost;
@@ -99,21 +94,21 @@ begin
cmdBack.Enabled := Enable;
end;}
-procedure TfrmHTML.webKeyDown(Sender: TObject; var Key: Word; ScanCode: Word;
+{procedure TfrmHTML.webKeyDown(Sender: TObject; var Key: Word; ScanCode: Word;
Shift: TShiftState);
begin
inherited;
if Key = VK_ESCAPE then
Close;
-end;
+end;}
-procedure TfrmHTML.webNewWindow3(ASender: TObject; var ppDisp: IDispatch;
+{procedure TfrmHTML.webNewWindow3(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool; dwFlags: Cardinal; const bstrUrlContext,
bstrUrl: WideString);
begin
Cancel := True;
TUtilExecute.URL(bstrUrl); // I3349
-end;
+end;}
procedure TfrmHTML.SetText(const Value: string);
var
@@ -177,6 +172,7 @@ begin
cef.Parent := Self;
cef.Visible := True;
cef.ShouldOpenRemoteUrlsInBrowser := True;
+
// cef.OnBeforeBrowse := cefBeforeBrowse;
// cef.OnBeforeBrowseSync := cefBeforeBrowseSync;
// cef.OnLoadEnd := cefLoadEnd;
diff --git a/windows/src/desktop/kmshell/startup/help/UfrmTextEditor.pas b/windows/src/desktop/kmshell/startup/help/UfrmTextEditor.pas
index fa405dfd17..3e14bf1f89 100644
--- a/windows/src/desktop/kmshell/startup/help/UfrmTextEditor.pas
+++ b/windows/src/desktop/kmshell/startup/help/UfrmTextEditor.pas
@@ -1,4 +1,4 @@
-(*
+(* r
Name: UfrmTextEditor
Copyright: Copyright (C) SIL International.
Documentation:
@@ -138,18 +138,12 @@ type
procedure editorKeymanSelectLang(Sender: TObject);
procedure editorKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- procedure webBeforeNavigate2(ASender: TObject;
- const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
- Headers: OleVariant; var Cancel: WordBool);
procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
procedure Help2Click(Sender: TObject);
- procedure webNewWindow3(ASender: TObject; var ppDisp: IDispatch;
- var Cancel: WordBool; dwFlags: Cardinal; const bstrUrlContext,
- bstrUrl: WideString);
procedure mnuViewFontHelperClick(Sender: TObject);
procedure editorKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
private
- webFonts: TframeCEFHost;
+ cefFonts: TframeCEFHost;
wm_keyman_control, wm_keyman_refresh: UINT;
FUpdating: Boolean;
FCheckFontsThread: TCheckFontsThread;
@@ -160,7 +154,6 @@ type
procedure CMFontChange(var Message: TMessage); message CM_FONTCHANGE;
procedure WMUserFormShown(var Message: TMessage); message WM_USER_FormShown;
- procedure WMUserFireCommand(var Message: TMessage); message WM_USER_FireCommand;
procedure WMUserCheckFonts(var Message: TMessage); message WM_USER_CheckFonts;
procedure PostKeymanControlMessage(msg, wParam: UINT; lParam: Cardinal);
{function SendKeymanControlMessage(msg, wParam: UINT;
@@ -183,6 +176,8 @@ type
procedure FireCommand(const command: WideString; params: TStringList);
procedure ResetAutoKeyboard;
procedure StartCheckFontsThread;
+ procedure cefCommand(Sender: TObject; const command: string;
+ params: TStringList);
protected
class function ShouldRegisterWindow: Boolean; override; // I2720
public
@@ -264,7 +259,11 @@ begin
StartCheckFontsThread;
HideFontsBox;
- {$MESSAGE HINT 'TODO: Support font box'}
+ cefFonts := TframeCEFHost.Create(Self);
+ cefFonts.Parent := Self;
+ cefFonts.Visible := True;
+ cefFonts.ShouldOpenRemoteUrlsInBrowser := True;
+ cefFonts.OnCommand := cefCommand;
FormCreate_Editor;
end;
@@ -464,18 +463,6 @@ begin
CheckKeyboardFonts(True);
end;
-procedure TfrmTextEditor.WMUserFireCommand(var Message: TMessage);
-var
- command: WideString;
- params: TStringList;
-begin
- params := TStringList(Message.LParam);
- command := params[0];
- params.Delete(0);
- FireCommand(command, params);
- params.Free;
-end;
-
procedure TfrmTextEditor.WMUserFormShown(var Message: TMessage);
begin
CheckKeyboardFonts(False);
@@ -590,7 +577,7 @@ begin
if (lang = nil) or (lang.KeymanKeyboardLanguage = nil) then
begin
FreeAndNil(FFontWebFileName); // I4181
- FFontWebFileName := LoadWebBox(webFonts, 'welcome_fonts', ''); // I4181
+ FFontWebFileName := LoadWebBox(cefFonts, 'welcome_fonts', ''); // I4181
//HideFontsBox;
Exit;
end;
@@ -601,7 +588,7 @@ begin
if not Assigned(FKeyboard) then
begin
FreeAndNil(FFontWebFileName); // I4181
- FFontWebFileName := LoadWebBox(webFonts, 'welcome_fonts', ''); // I1534 - show hint for non-Unicode keyboards // I4181
+ FFontWebFileName := LoadWebBox(cefFonts, 'welcome_fonts', ''); // I1534 - show hint for non-Unicode keyboards // I4181
Exit;
end;
@@ -624,7 +611,7 @@ begin
FFontsData := FFontsData + '';
FreeAndNil(FFontWebFileName); // I4181
- FFontWebFileName := LoadWebBox(webFonts, 'welcome_fonts', FFontsData); // I4181
+ FFontWebFileName := LoadWebBox(cefFonts, 'welcome_fonts', FFontsData); // I4181
if (FKeyboard.Fonts.Count > 0) and FSetFont then
CurrText.Name := FKeyboard.Fonts[0].FontName;
@@ -795,36 +782,9 @@ begin
StatusBar.Panels[0].Text := Format(sColRowInfo, [CharPos.Y, CharPos.X]);
end;
-procedure TfrmTextEditor.webBeforeNavigate2(ASender: TObject;
- const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
- Headers: OleVariant; var Cancel: WordBool);
-var
- params: TStringList;
+procedure TfrmTextEditor.cefCommand(Sender: TObject; const command: string; params: TStringList);
begin
- if GetParamsFromURL(URL, params) then
- begin
- PostMessage(Handle, WM_USER_FireCommand, 0, Integer(params));
- Cancel := True;
- end;
-end;
-
-{$MESSAGE HINT 'TODO: Handle new window event from font frame'}
-procedure TfrmTextEditor.webNewWindow3(ASender: TObject;
- var ppDisp: IDispatch; var Cancel: WordBool; dwFlags: Cardinal;
- const bstrUrlContext, bstrUrl: WideString);
-var
- params: TStringList;
-begin
- if GetParamsFromURL(bstrUrl, params) then
- begin
- PostMessage(Handle, WM_USER_FireCommand, 0, Integer(params));
- Cancel := True;
- end
- else
- begin
- Cancel := True;
- (ASender as TframeCEFHost).Navigate(bstrUrl);
- end;
+ FireCommand(command, params);
end;
procedure TfrmTextEditor.FormShow_Editor;
@@ -868,7 +828,7 @@ var
begin
if command = 'selectfont' then
begin
- webFonts.SetFocus;
+ cefFonts.SetFocus;
if editor.CanFocus then // I1641
editor.SetFocus;
CurrText.Name := params.Values['font'];
diff --git a/windows/src/engine/tsysinfo/sysinfo_main.pas b/windows/src/engine/tsysinfo/sysinfo_main.pas
index 3de0a597be..a3897cf49c 100644
--- a/windows/src/engine/tsysinfo/sysinfo_main.pas
+++ b/windows/src/engine/tsysinfo/sysinfo_main.pas
@@ -442,8 +442,8 @@ begin
begin
si := FSIList[i];
web := TframeCEFHost.Create(si.Parent);
- // web.Parent := si.Parent as TWinControl;
- (si.Parent as TWinControl).InsertControl(web);
+ web.Parent := si.Parent as TWinControl;
+ //(si.Parent as TWinControl).InsertControl(web);
(si.Parent as TTabSheet).Caption := si.Caption;
(si.Parent as TTabSheet).TabVisible := True;
web.Align := alClient;
diff --git a/windows/src/engine/tsysinfo/tsysinfo.dpr b/windows/src/engine/tsysinfo/tsysinfo.dpr
index bda5d4cfdb..061a72ea44 100644
--- a/windows/src/engine/tsysinfo/tsysinfo.dpr
+++ b/windows/src/engine/tsysinfo/tsysinfo.dpr
@@ -63,8 +63,20 @@ uses
{$R version.res}
begin
- Application.Title := 'Keyman Desktop System Information';
- Application.Initialize;
- Application.CreateForm(TfrmDiagnostics, frmDiagnostics);
- Application.Run;
+ FInitializeCEF := TCEFManager.Create(SFolderKeymanEngine);
+ try
+ try
+ if FInitializeCEF.Start then
+ begin
+ Application.Title := 'Keyman Desktop System Information';
+ Application.Initialize;
+ Application.CreateForm(TfrmDiagnostics, frmDiagnostics);
+ Application.Run;
+ end;
+ finally
+ frmDiagnostics.Free;
+ end;
+ finally
+ FInitializeCEF.Free;
+ end;
end.
diff --git a/windows/src/engine/tsysinfo/tsysinfo.dproj b/windows/src/engine/tsysinfo/tsysinfo.dproj
index 56bad35cfd..42ca3550d3 100644
--- a/windows/src/engine/tsysinfo/tsysinfo.dproj
+++ b/windows/src/engine/tsysinfo/tsysinfo.dproj
@@ -125,7 +125,6 @@
tsysinfo_Icon1.ico
- -c c:\temp\exception-10472-2017-03-20-19-47-10.log
CompanyName=;FileVersion=5.0.0.26;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)
1033
Debug
@@ -170,7 +169,6 @@
-
@@ -197,7 +195,6 @@
-
diff --git a/windows/src/ext/cef4delphi.txt b/windows/src/ext/cef4delphi.txt
index c7d38865fa..4d1a3a5358 100644
--- a/windows/src/ext/cef4delphi.txt
+++ b/windows/src/ext/cef4delphi.txt
@@ -45,6 +45,7 @@ Keyman Desktop from TEmbeddedWB to TCEF4Delphi. It may not be up to date.
cef / cefwp:
UframeCEFHost (TframeCEFHost)
+ {Kmshell, Developer, Keyman, Tsysinfo}
Kmshell
UfrmHTML ()
@@ -70,7 +71,7 @@ Developer
Keyman
UfrmOSKFontHelper
UfrmOSKKeyboardUsage
- UfrmVisualKeyboard [WebHintManager]
+ UfrmVisualKeyboard [*WebHintManager from global]
UfrmWebContainer [*from global]
UfrmHelp
UfrmHint [*from global]
@@ -80,5 +81,8 @@ Tsysinfo
Global
WebBrowserManager [*]
+ {Keyman}
UfrmWebContainer [*]
- {Keyman, KMShell}
+ {Keyman, KMShell}
+ UfrmHint [*]
+ {Keyman, KMShell}
diff --git a/windows/src/global/delphi/comp/WebBrowserManager.pas b/windows/src/global/delphi/comp/WebBrowserManager.pas
index b8f10bd62f..7055d58149 100644
--- a/windows/src/global/delphi/comp/WebBrowserManager.pas
+++ b/windows/src/global/delphi/comp/WebBrowserManager.pas
@@ -134,20 +134,9 @@ begin
end;
procedure TWebBrowserManager.SafeWndProc(var Message: TMessage);
-var
- command: WideString;
- params: TStringList;
begin
with Message do
case Msg of
- WM_USER_FireCommand:
- begin
- params := TStringList(Message.LParam);
- command := params[0];
- params.Delete(0);
- FireCommand(command, params);
- params.Free;
- end;
WM_USER_ContentRender:
Content_Render;
else