1
0
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:
Salvador Díaz Fau 2020-04-10 09:49:34 +02:00
parent 846aeddd54
commit 3de53a0376
19 changed files with 122 additions and 64 deletions

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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>

View File

@ -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;

View File

@ -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"/>

View File

@ -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';

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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" : {