mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-06-02 21:57:37 +02:00
Update to CEF 81.2.15
This commit is contained in:
parent
846aeddd54
commit
3de53a0376
@ -3,13 +3,13 @@ CEF4Delphi is an open source project created by Salvador D
|
|||||||
|
|
||||||
CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
|
CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
|
||||||
|
|
||||||
CEF4Delphi uses CEF 80.1.15 which includes Chromium 80.0.3987.163.
|
CEF4Delphi uses CEF 81.2.15 which includes Chromium 81.0.4044.92.
|
||||||
The CEF binaries used by CEF4Delphi are available for download at spotify :
|
The CEF binaries used by CEF4Delphi are available for download at spotify :
|
||||||
* [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_80.1.15%2Bg7b802c9%2Bchromium-80.0.3987.163_windows32.tar.bz2)
|
* [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_81.2.15%2Bge07275d%2Bchromium-81.0.4044.92_windows32.tar.bz2)
|
||||||
* [64 bits](http://opensource.spotify.com/cefbuilds/cef_binary_80.1.15%2Bg7b802c9%2Bchromium-80.0.3987.163_windows64.tar.bz2)
|
* 64 bits not available at this moment.
|
||||||
|
|
||||||
|
|
||||||
CEF4Delphi was developed and tested on Delphi 10.3 Rio and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2 and Lazarus 2.0.6/FPC 3.0.4. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
|
CEF4Delphi was developed and tested on Delphi 10.3.3 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2 and Lazarus 2.0.6/FPC 3.0.4. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
|
||||||
|
|
||||||
## Links
|
## Links
|
||||||
* [Installation instructions and more information about CEF4Delphi](https://www.briskbard.com/index.php?lang=en&pageid=cef)
|
* [Installation instructions and more information about CEF4Delphi](https://www.briskbard.com/index.php?lang=en&pageid=cef)
|
||||||
|
@ -171,6 +171,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
@ -251,6 +252,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
|
@ -206,6 +206,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
@ -293,6 +294,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
|
@ -210,6 +210,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
@ -290,6 +291,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
|
@ -170,6 +170,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end
|
end
|
||||||
@ -280,6 +281,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
Chromium1.SendKeyEvent(@TempKeyEvent);
|
Chromium1.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end
|
end
|
||||||
|
@ -60,30 +60,20 @@ type
|
|||||||
Timer1: TTimer;
|
Timer1: TTimer;
|
||||||
Chromium1: TChromium;
|
Chromium1: TChromium;
|
||||||
CEFWindowParent1: TCEFWindowParent;
|
CEFWindowParent1: TCEFWindowParent;
|
||||||
|
|
||||||
procedure GoBtnClick(Sender: TObject);
|
procedure GoBtnClick(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
|
||||||
procedure Timer1Timer(Sender: TObject);
|
procedure Timer1Timer(Sender: TObject);
|
||||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
|
||||||
|
procedure FormShow(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||||
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
|
|
||||||
var aAction : TCefCloseBrowserAction);
|
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||||
procedure Chromium1BeforeClose(Sender: TObject;
|
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
|
||||||
const browser: ICefBrowser);
|
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||||
procedure Chromium1BeforePopup(Sender: TObject;
|
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess, Result: Boolean);
|
||||||
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
|
procedure Chromium1OpenUrlFromTab(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out Result: Boolean);
|
||||||
targetFrameName: ustring;
|
|
||||||
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
|
|
||||||
const popupFeatures: TCefPopupFeatures;
|
|
||||||
var windowInfo: TCefWindowInfo; var client: ICefClient;
|
|
||||||
var settings: TCefBrowserSettings;
|
|
||||||
var extra_info: ICefDictionaryValue; var noJavascriptAccess,
|
|
||||||
Result: Boolean);
|
|
||||||
procedure Chromium1OpenUrlFromTab(Sender: TObject;
|
|
||||||
const browser: ICefBrowser; const frame: ICefFrame;
|
|
||||||
const targetUrl: ustring;
|
|
||||||
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
|
|
||||||
out Result: Boolean);
|
|
||||||
protected
|
protected
|
||||||
// Variables to control when can we destroy the form safely
|
// Variables to control when can we destroy the form safely
|
||||||
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
|
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
|
||||||
|
@ -259,6 +259,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
@ -339,6 +340,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(Msg.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
Handled := True;
|
Handled := True;
|
||||||
end;
|
end;
|
||||||
|
@ -623,6 +623,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(aMessage.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -186,10 +186,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChildForm.chrmosrIMECompositionRangeChanged( Sender : TObject;
|
procedure TChildForm.chrmosrIMECompositionRangeChanged( Sender : TObject;
|
||||||
const browser : ICefBrowser;
|
const browser : ICefBrowser;
|
||||||
const selected_range : PCefRange;
|
const selected_range : PCefRange;
|
||||||
character_boundsCount : NativeUInt;
|
character_boundsCount : NativeUInt;
|
||||||
const character_bounds : PCefRect);
|
const character_bounds : PCefRect);
|
||||||
var
|
var
|
||||||
TempPRect : PCefRect;
|
TempPRect : PCefRect;
|
||||||
i : NativeUInt;
|
i : NativeUInt;
|
||||||
@ -284,19 +284,19 @@ begin
|
|||||||
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
|
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChildForm.chrmosrCursorChange(Sender : TObject;
|
procedure TChildForm.chrmosrCursorChange( Sender : TObject;
|
||||||
const browser : ICefBrowser;
|
const browser : ICefBrowser;
|
||||||
aCursor : HICON;
|
aCursor : HICON;
|
||||||
cursorType : TCefCursorType;
|
cursorType : TCefCursorType;
|
||||||
const customCursorInfo : PCefCursorInfo);
|
const customCursorInfo : PCefCursorInfo);
|
||||||
begin
|
begin
|
||||||
Panel1.Cursor := CefCursorToWindowsCursor(cursorType);
|
Panel1.Cursor := CefCursorToWindowsCursor(cursorType);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChildForm.chrmosrGetScreenInfo(Sender : TObject;
|
procedure TChildForm.chrmosrGetScreenInfo( Sender : TObject;
|
||||||
const browser : ICefBrowser;
|
const browser : ICefBrowser;
|
||||||
var screenInfo : TCefScreenInfo;
|
var screenInfo : TCefScreenInfo;
|
||||||
out Result : Boolean);
|
out Result : Boolean);
|
||||||
var
|
var
|
||||||
TempRect : TCEFRect;
|
TempRect : TCEFRect;
|
||||||
begin
|
begin
|
||||||
@ -339,9 +339,9 @@ begin
|
|||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChildForm.chrmosrGetViewRect(Sender : TObject;
|
procedure TChildForm.chrmosrGetViewRect( Sender : TObject;
|
||||||
const browser : ICefBrowser;
|
const browser : ICefBrowser;
|
||||||
var rect : TCefRect);
|
var rect : TCefRect);
|
||||||
begin
|
begin
|
||||||
if (GlobalCEFApp <> nil) then
|
if (GlobalCEFApp <> nil) then
|
||||||
begin
|
begin
|
||||||
@ -582,6 +582,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(aMessage.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -870,18 +871,18 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChildForm.Panel1IMECommitText( Sender : TObject;
|
procedure TChildForm.Panel1IMECommitText( Sender : TObject;
|
||||||
const aText : ustring;
|
const aText : ustring;
|
||||||
const replacement_range : PCefRange;
|
const replacement_range : PCefRange;
|
||||||
relative_cursor_pos : Integer);
|
relative_cursor_pos : Integer);
|
||||||
begin
|
begin
|
||||||
chrmosr.IMECommitText(aText, replacement_range, relative_cursor_pos);
|
chrmosr.IMECommitText(aText, replacement_range, relative_cursor_pos);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChildForm.Panel1IMESetComposition( Sender : TObject;
|
procedure TChildForm.Panel1IMESetComposition( Sender : TObject;
|
||||||
const aText : ustring;
|
const aText : ustring;
|
||||||
const underlines : TCefCompositionUnderlineDynArray;
|
const underlines : TCefCompositionUnderlineDynArray;
|
||||||
const replacement_range : TCefRange;
|
const replacement_range : TCefRange;
|
||||||
const selection_range : TCefRange);
|
const selection_range : TCefRange);
|
||||||
begin
|
begin
|
||||||
chrmosr.IMESetComposition(aText, underlines, @replacement_range, @selection_range);
|
chrmosr.IMESetComposition(aText, underlines, @replacement_range, @selection_range);
|
||||||
end;
|
end;
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
<PathDelim Value="\"/>
|
<PathDelim Value="\"/>
|
||||||
<Version Value="11"/>
|
<Version Value="11"/>
|
||||||
<BuildModes Active="Default"/>
|
<BuildModes Active="Default"/>
|
||||||
<Units Count="29">
|
<Units Count="30">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="SimpleOSRBrowser.lpr"/>
|
<Filename Value="SimpleOSRBrowser.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="2"/>
|
||||||
<TopLine Value="30"/>
|
<TopLine Value="30"/>
|
||||||
<CursorPos X="28" Y="39"/>
|
<CursorPos X="28" Y="39"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="20"/>
|
||||||
@ -37,7 +37,6 @@
|
|||||||
<ComponentName Value="Form1"/>
|
<ComponentName Value="Form1"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<IsVisibleTab Value="True"/>
|
|
||||||
<TopLine Value="382"/>
|
<TopLine Value="382"/>
|
||||||
<CursorPos X="60" Y="393"/>
|
<CursorPos X="60" Y="393"/>
|
||||||
<UsageCount Value="42"/>
|
<UsageCount Value="42"/>
|
||||||
@ -243,6 +242,14 @@
|
|||||||
<CursorPos X="69" Y="621"/>
|
<CursorPos X="69" Y="621"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
|
<Unit29>
|
||||||
|
<Filename Value="..\..\..\source\uCEFApplicationCore.pas"/>
|
||||||
|
<IsVisibleTab Value="True"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<TopLine Value="43"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit29>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
|
@ -632,6 +632,7 @@ begin
|
|||||||
TempKeyEvent.unmodified_character := #0;
|
TempKeyEvent.unmodified_character := #0;
|
||||||
TempKeyEvent.focus_on_editable_field := ord(False);
|
TempKeyEvent.focus_on_editable_field := ord(False);
|
||||||
|
|
||||||
|
CefCheckAltGrPressed(aMessage.wParam, TempKeyEvent);
|
||||||
chrmosr.SendKeyEvent(@TempKeyEvent);
|
chrmosr.SendKeyEvent(@TempKeyEvent);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
</CompilerOptions>
|
</CompilerOptions>
|
||||||
<Description Value="CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC."/>
|
<Description Value="CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC."/>
|
||||||
<License Value="MPL 1.1"/>
|
<License Value="MPL 1.1"/>
|
||||||
<Version Major="80" Minor="1" Release="15"/>
|
<Version Major="81" Minor="2" Release="15"/>
|
||||||
<Files Count="156">
|
<Files Count="156">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>
|
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>
|
||||||
|
@ -60,15 +60,15 @@ uses
|
|||||||
uCEFTypes, uCEFInterfaces, uCEFBaseRefCounted, uCEFSchemeRegistrar;
|
uCEFTypes, uCEFInterfaces, uCEFBaseRefCounted, uCEFSchemeRegistrar;
|
||||||
|
|
||||||
const
|
const
|
||||||
CEF_SUPPORTED_VERSION_MAJOR = 80;
|
CEF_SUPPORTED_VERSION_MAJOR = 81;
|
||||||
CEF_SUPPORTED_VERSION_MINOR = 1;
|
CEF_SUPPORTED_VERSION_MINOR = 2;
|
||||||
CEF_SUPPORTED_VERSION_RELEASE = 15;
|
CEF_SUPPORTED_VERSION_RELEASE = 15;
|
||||||
CEF_SUPPORTED_VERSION_BUILD = 0;
|
CEF_SUPPORTED_VERSION_BUILD = 0;
|
||||||
|
|
||||||
CEF_CHROMEELF_VERSION_MAJOR = 80;
|
CEF_CHROMEELF_VERSION_MAJOR = 81;
|
||||||
CEF_CHROMEELF_VERSION_MINOR = 0;
|
CEF_CHROMEELF_VERSION_MINOR = 0;
|
||||||
CEF_CHROMEELF_VERSION_RELEASE = 3987;
|
CEF_CHROMEELF_VERSION_RELEASE = 4044;
|
||||||
CEF_CHROMEELF_VERSION_BUILD = 163;
|
CEF_CHROMEELF_VERSION_BUILD = 92;
|
||||||
|
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
LIBCEF_DLL = 'libcef.dll';
|
LIBCEF_DLL = 'libcef.dll';
|
||||||
|
@ -618,6 +618,7 @@ begin
|
|||||||
TempItem^.color := underlines[i].color;
|
TempItem^.color := underlines[i].color;
|
||||||
TempItem^.background_color := underlines[i].background_color;
|
TempItem^.background_color := underlines[i].background_color;
|
||||||
TempItem^.thick := underlines[i].thick;
|
TempItem^.thick := underlines[i].thick;
|
||||||
|
TempItem^.style := underlines[i].style;
|
||||||
|
|
||||||
inc(i);
|
inc(i);
|
||||||
inc(TempItem);
|
inc(TempItem);
|
||||||
|
@ -398,6 +398,7 @@ const
|
|||||||
EVENTFLAG_IS_KEY_PAD = 1 shl 9;
|
EVENTFLAG_IS_KEY_PAD = 1 shl 9;
|
||||||
EVENTFLAG_IS_LEFT = 1 shl 10;
|
EVENTFLAG_IS_LEFT = 1 shl 10;
|
||||||
EVENTFLAG_IS_RIGHT = 1 shl 11;
|
EVENTFLAG_IS_RIGHT = 1 shl 11;
|
||||||
|
EVENTFLAG_ALTGR_DOWN = 1 shl 12;
|
||||||
|
|
||||||
// /include/internal/cef_types.h (cef_drag_operations_mask_t)
|
// /include/internal/cef_types.h (cef_drag_operations_mask_t)
|
||||||
DRAG_OPERATION_NONE = 0;
|
DRAG_OPERATION_NONE = 0;
|
||||||
|
@ -260,11 +260,12 @@ function CefZipDirectory(const srcDir, destFile: ustring; includeHiddenFiles: Bo
|
|||||||
procedure CefLoadCRLSetsFile(const path : ustring);
|
procedure CefLoadCRLSetsFile(const path : ustring);
|
||||||
|
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
function CefIsKeyDown(aWparam : WPARAM) : boolean;
|
function CefIsKeyDown(aWparam : WPARAM) : boolean;
|
||||||
function CefIsKeyToggled(aWparam : WPARAM) : boolean;
|
function CefIsKeyToggled(aWparam : WPARAM) : boolean;
|
||||||
function GetCefMouseModifiers : TCefEventFlags; overload;
|
function GetCefMouseModifiers : TCefEventFlags; overload;
|
||||||
function GetCefMouseModifiers(awparam : WPARAM) : TCefEventFlags; overload;
|
function GetCefMouseModifiers(awparam : WPARAM) : TCefEventFlags; overload;
|
||||||
function GetCefKeyboardModifiers(aWparam : WPARAM; aLparam : LPARAM) : TCefEventFlags;
|
function GetCefKeyboardModifiers(aWparam : WPARAM; aLparam : LPARAM) : TCefEventFlags;
|
||||||
|
procedure CefCheckAltGrPressed(aWparam : WPARAM; var aEvent : TCefKeyEvent);
|
||||||
|
|
||||||
procedure DropEffectToDragOperation(aEffect : Longint; var aAllowedOps : TCefDragOperations);
|
procedure DropEffectToDragOperation(aEffect : Longint; var aAllowedOps : TCefDragOperations);
|
||||||
procedure DragOperationToDropEffect(const aDragOperations : TCefDragOperations; var aEffect: Longint);
|
procedure DragOperationToDropEffect(const aDragOperations : TCefDragOperations; var aEffect: Longint);
|
||||||
@ -1621,7 +1622,7 @@ begin
|
|||||||
|
|
||||||
if Result then
|
if Result then
|
||||||
begin
|
begin
|
||||||
//parts.spec := CefString(@TempParts.spec);
|
parts.spec := CefString(@TempParts.spec);
|
||||||
parts.scheme := CefString(@TempParts.scheme);
|
parts.scheme := CefString(@TempParts.scheme);
|
||||||
parts.username := CefString(@TempParts.username);
|
parts.username := CefString(@TempParts.username);
|
||||||
parts.password := CefString(@TempParts.password);
|
parts.password := CefString(@TempParts.password);
|
||||||
@ -1630,6 +1631,7 @@ begin
|
|||||||
parts.origin := CefString(@TempParts.origin);
|
parts.origin := CefString(@TempParts.origin);
|
||||||
parts.path := CefString(@TempParts.path);
|
parts.path := CefString(@TempParts.path);
|
||||||
parts.query := CefString(@TempParts.query);
|
parts.query := CefString(@TempParts.query);
|
||||||
|
parts.fragment := CefString(@TempParts.fragment);
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -2034,6 +2036,34 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure CefCheckAltGrPressed(aWparam : WPARAM; var aEvent : TCefKeyEvent);
|
||||||
|
const
|
||||||
|
EITHER_SHIFT_KEY_PRESSED = $01;
|
||||||
|
EITHER_CONTROL_KEY_PRESSED = $02;
|
||||||
|
EITHER_ALT_KEY_PRESSED = $04;
|
||||||
|
EITHER_HANKAKU_KEY_PRESSED = $08;
|
||||||
|
EITHER_RESERVED1_KEY_PRESSED = $10;
|
||||||
|
EITHER_RESERVED2_KEY_PRESSED = $20;
|
||||||
|
var
|
||||||
|
TempKBLayout : HKL;
|
||||||
|
TempTranslatedChar : SHORT;
|
||||||
|
TempShiftState : byte;
|
||||||
|
begin
|
||||||
|
if (aEvent.kind = KEYEVENT_CHAR) and CefIsKeyDown(VK_RMENU) then
|
||||||
|
begin
|
||||||
|
TempKBLayout := GetKeyboardLayout(0);
|
||||||
|
TempTranslatedChar := VkKeyScanEx(char(aWparam), TempKBLayout);
|
||||||
|
TempShiftState := byte(TempTranslatedChar shr 8);
|
||||||
|
|
||||||
|
if ((TempShiftState and EITHER_CONTROL_KEY_PRESSED) <> 0) and
|
||||||
|
((TempShiftState and EITHER_ALT_KEY_PRESSED) <> 0) then
|
||||||
|
begin
|
||||||
|
aEvent.modifiers := aEvent.modifiers and not(EVENTFLAG_CONTROL_DOWN or EVENTFLAG_ALT_DOWN);
|
||||||
|
aEvent.modifiers := aEvent.modifiers or EVENTFLAG_ALTGR_DOWN;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure DropEffectToDragOperation(aEffect: Longint; var aAllowedOps : TCefDragOperations);
|
procedure DropEffectToDragOperation(aEffect: Longint; var aAllowedOps : TCefDragOperations);
|
||||||
begin
|
begin
|
||||||
aAllowedOps := DRAG_OPERATION_NONE;
|
aAllowedOps := DRAG_OPERATION_NONE;
|
||||||
|
@ -56,6 +56,7 @@ uses
|
|||||||
const
|
const
|
||||||
DEFAULT_BLINK_UNDERLINE_COLOR = $FF000000; // Black SkColor
|
DEFAULT_BLINK_UNDERLINE_COLOR = $FF000000; // Black SkColor
|
||||||
DEFAULT_BLINK_BACKGROUND_COLOR = $00000000; // White SkColor
|
DEFAULT_BLINK_BACKGROUND_COLOR = $00000000; // White SkColor
|
||||||
|
DEFAULT_BLINK_UNDERLINE_STYLE = CEF_CUS_SOLID;
|
||||||
|
|
||||||
KEYBOARD_LAYOUT_EN_US = $0409;
|
KEYBOARD_LAYOUT_EN_US = $0409;
|
||||||
|
|
||||||
@ -256,6 +257,7 @@ begin
|
|||||||
underlines[i].range.from := 0;
|
underlines[i].range.from := 0;
|
||||||
underlines[i].range.to_ := TempStart;
|
underlines[i].range.to_ := TempStart;
|
||||||
underlines[i].thick := 0;
|
underlines[i].thick := 0;
|
||||||
|
underlines[i].style := DEFAULT_BLINK_UNDERLINE_STYLE;
|
||||||
|
|
||||||
inc(i);
|
inc(i);
|
||||||
end;
|
end;
|
||||||
@ -267,6 +269,7 @@ begin
|
|||||||
underlines[i].range.from := TempStart;
|
underlines[i].range.from := TempStart;
|
||||||
underlines[i].range.to_ := TempEnd;
|
underlines[i].range.to_ := TempEnd;
|
||||||
underlines[i].thick := 1;
|
underlines[i].thick := 1;
|
||||||
|
underlines[i].style := DEFAULT_BLINK_UNDERLINE_STYLE;
|
||||||
|
|
||||||
inc(i);
|
inc(i);
|
||||||
end;
|
end;
|
||||||
@ -278,6 +281,7 @@ begin
|
|||||||
underlines[i].range.from := TempEnd;
|
underlines[i].range.from := TempEnd;
|
||||||
underlines[i].range.to_ := TempLen;
|
underlines[i].range.to_ := TempLen;
|
||||||
underlines[i].thick := 0;
|
underlines[i].thick := 0;
|
||||||
|
underlines[i].style := DEFAULT_BLINK_UNDERLINE_STYLE;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -440,6 +444,7 @@ begin
|
|||||||
underlines[j].range.to_ := TempBuffer[succ(i)];
|
underlines[j].range.to_ := TempBuffer[succ(i)];
|
||||||
underlines[j].color := DEFAULT_BLINK_UNDERLINE_COLOR;
|
underlines[j].color := DEFAULT_BLINK_UNDERLINE_COLOR;
|
||||||
underlines[j].background_color := DEFAULT_BLINK_BACKGROUND_COLOR;
|
underlines[j].background_color := DEFAULT_BLINK_BACKGROUND_COLOR;
|
||||||
|
underlines[j].style := DEFAULT_BLINK_UNDERLINE_STYLE;
|
||||||
|
|
||||||
if (underlines[j].range.from >= target_start) and
|
if (underlines[j].range.from >= target_start) and
|
||||||
(underlines[j].range.to_ <= target_end) then
|
(underlines[j].range.to_ <= target_end) then
|
||||||
|
@ -481,6 +481,7 @@ type
|
|||||||
origin : TCefString;
|
origin : TCefString;
|
||||||
path : TCefString;
|
path : TCefString;
|
||||||
query : TCefString;
|
query : TCefString;
|
||||||
|
fragment : TCefString;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TUrlParts = record
|
TUrlParts = record
|
||||||
@ -493,6 +494,7 @@ type
|
|||||||
origin : ustring;
|
origin : ustring;
|
||||||
path : ustring;
|
path : ustring;
|
||||||
query : ustring;
|
query : ustring;
|
||||||
|
fragment : ustring;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// /include/internal/cef_types.h (cef_insets_t)
|
// /include/internal/cef_types.h (cef_insets_t)
|
||||||
@ -1032,12 +1034,21 @@ type
|
|||||||
CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED
|
CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// /include/internal/cef_types.h (cef_composition_underline_style_t)
|
||||||
|
TCefCompositionUnderlineStyle = (
|
||||||
|
CEF_CUS_SOLID,
|
||||||
|
CEF_CUS_DOT,
|
||||||
|
CEF_CUS_DASH,
|
||||||
|
CEF_CUS_NONE
|
||||||
|
);
|
||||||
|
|
||||||
// /include/internal/cef_types.h (cef_composition_underline_t)
|
// /include/internal/cef_types.h (cef_composition_underline_t)
|
||||||
TCefCompositionUnderline = record
|
TCefCompositionUnderline = record
|
||||||
range : TCefRange;
|
range : TCefRange;
|
||||||
color : TCefColor;
|
color : TCefColor;
|
||||||
background_color : TCefColor;
|
background_color : TCefColor;
|
||||||
thick : integer;
|
thick : integer;
|
||||||
|
style : TCefCompositionUnderlineStyle;
|
||||||
end;
|
end;
|
||||||
TCefCompositionUnderlineDynArray = array of TCefCompositionUnderline;
|
TCefCompositionUnderlineDynArray = array of TCefCompositionUnderline;
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
"UpdateLazPackages" : [
|
"UpdateLazPackages" : [
|
||||||
{
|
{
|
||||||
"ForceNotify" : true,
|
"ForceNotify" : true,
|
||||||
"InternalVersion" : 116,
|
"InternalVersion" : 117,
|
||||||
"Name" : "cef4delphi_lazarus.lpk",
|
"Name" : "cef4delphi_lazarus.lpk",
|
||||||
"Version" : "80.1.15.0"
|
"Version" : "81.2.15.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"UpdatePackageData" : {
|
"UpdatePackageData" : {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user