1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-05-13 21:46:53 +02:00

Update to CEF 88.2.8

Fixed issue #339 : SimpleOSRBrowser crashes when the mouse is moved over the browser using CEF 88
This commit is contained in:
Salvador Diaz Fau 2021-02-16 12:45:44 +01:00
parent 7de0ea6a81
commit bdaf4554e6
7 changed files with 224 additions and 80 deletions

View File

@ -3,14 +3,14 @@ CEF4Delphi is an open source project created by Salvador Díaz Fau to embed Chro
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 88.2.7 which includes Chromium 88.0.4324.150. CEF4Delphi uses CEF 88.2.8 which includes Chromium 88.0.4324.150.
The CEF binaries used by CEF4Delphi are available for download at spotify : The CEF binaries used by CEF4Delphi are available for download at spotify :
* [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.7%2Bgc18ff58%2Bchromium-88.0.4324.150_windows32.tar.bz2) * [Windows 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.8%2Bge484012%2Bchromium-88.0.4324.150_windows32.tar.bz2)
* [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.7%2Bgc18ff58%2Bchromium-88.0.4324.150_windows64.tar.bz2) * [Windows 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.8%2Bge484012%2Bchromium-88.0.4324.150_windows64.tar.bz2)
* [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.7%2Bgc18ff58%2Bchromium-88.0.4324.150_linux32.tar.bz2) * [Linux x86 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.8%2Bge484012%2Bchromium-88.0.4324.150_linux32.tar.bz2)
* [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.7%2Bgc18ff58%2Bchromium-88.0.4324.150_linux64.tar.bz2) * [Linux x86 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.8%2Bge484012%2Bchromium-88.0.4324.150_linux64.tar.bz2)
* [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.7%2Bgc18ff58%2Bchromium-88.0.4324.150_linuxarm.tar.bz2) * [Linux ARM 32 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.8%2Bge484012%2Bchromium-88.0.4324.150_linuxarm.tar.bz2)
* [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.7%2Bgc18ff58%2Bchromium-88.0.4324.150_linuxarm64.tar.bz2) * [Linux ARM 64 bits](https://cef-builds.spotifycdn.com/cef_binary_88.2.8%2Bge484012%2Bchromium-88.0.4324.150_linuxarm64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 10.4.1 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3 and Lazarus 2.0.10/FPC 3.2.0. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components. CEF4Delphi was developed and tested on Delphi 10.4.1 and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2, Delphi 10.3 and Lazarus 2.0.10/FPC 3.2.0. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.
@ -52,3 +52,6 @@ Some icons used in this project belong to these icon packages :
## Other resources ## Other resources
* [Learn Delphi](https://learndelphi.org/) * [Learn Delphi](https://learndelphi.org/)
* [Essential Pascal by Marco Cantù](https://www.marcocantu.com/epascal/) * [Essential Pascal by Marco Cantù](https://www.marcocantu.com/epascal/)
* [FreePascal from SquareOne by Jeff Duntemann](http://www.copperwood.com/pub/FreePascalFromSquareOne.pdf)
* [Pascal and Lazarus Books and Magazines](https://wiki.freepascal.org/Pascal_and_Lazarus_Books_and_Magazines)
* [Lazarus Documentation](https://wiki.freepascal.org/Lazarus_Documentation)

View File

@ -3,14 +3,14 @@
<ProjectSession> <ProjectSession>
<Version Value="11"/> <Version Value="11"/>
<BuildModes Active="Default"/> <BuildModes Active="Default"/>
<Units Count="111"> <Units Count="112">
<Unit0> <Unit0>
<Filename Value="SimpleOSRBrowser.lpr"/> <Filename Value="SimpleOSRBrowser.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="29"/> <TopLine Value="29"/>
<CursorPos X="57" Y="58"/> <CursorPos X="57" Y="58"/>
<UsageCount Value="85"/> <UsageCount Value="90"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="usimpleosrbrowser.pas"/> <Filename Value="usimpleosrbrowser.pas"/>
@ -20,11 +20,13 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="uSimpleOSRBrowser"/> <UnitName Value="uSimpleOSRBrowser"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="341"/> <TopLine Value="310"/>
<CursorPos X="27" Y="359"/> <CursorPos X="3" Y="314"/>
<UsageCount Value="85"/> <UsageCount Value="90"/>
<Bookmarks Count="1"> <Bookmarks Count="3">
<Item0 X="80" Y="554" ID="6"/> <Item0 X="80" Y="560" ID="6"/>
<Item1 Y="520" ID="9"/>
<Item2 Y="814" ID="8"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -35,7 +37,7 @@
<UnitName Value="Interfaces"/> <UnitName Value="Interfaces"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<CursorPos X="40" Y="20"/> <CursorPos X="40" Y="20"/>
<UsageCount Value="81"/> <UsageCount Value="86"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="/usr/share/lazarus/2.0.6/lcl/lcltype.pp"/> <Filename Value="/usr/share/lazarus/2.0.6/lcl/lcltype.pp"/>
@ -124,34 +126,29 @@
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="../../../source/uCEFBufferPanel.pas"/> <Filename Value="../../../source/uCEFBufferPanel.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="1"/>
<TopLine Value="231"/> <TopLine Value="129"/>
<CursorPos Y="257"/> <CursorPos X="19" Y="150"/>
<UsageCount Value="29"/> <UsageCount Value="31"/>
<Bookmarks Count="4"> <Bookmarks Count="1">
<Item0 Y="1038" ID="9"/> <Item0 X="5" Y="355" ID="7"/>
<Item1 X="63" Y="591" ID="8"/>
<Item2 X="5" Y="352" ID="7"/>
<Item3 X="5" Y="382" ID="1"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
<Filename Value="/usr/share/lazarus/2.0.10/lcl/forms.pp"/> <Filename Value="/usr/share/lazarus/2.0.10/lcl/forms.pp"/>
<UnitName Value="Forms"/> <UnitName Value="Forms"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="684"/> <TopLine Value="2025"/>
<CursorPos X="31" Y="711"/> <CursorPos X="3" Y="2028"/>
<UsageCount Value="9"/> <UsageCount Value="11"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
<Filename Value="../../../source/uCEFApplicationCore.pas"/> <Filename Value="../../../source/uCEFApplicationCore.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="340"/> <TopLine Value="340"/>
<CursorPos X="40" Y="377"/> <CursorPos X="39" Y="378"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Bookmarks Count="1">
<Item0 X="3" Y="2235" ID="3"/>
</Bookmarks>
</Unit17> </Unit17>
<Unit18> <Unit18>
<Filename Value="../../../source/uCEFApplication.pas"/> <Filename Value="../../../source/uCEFApplication.pas"/>
@ -293,9 +290,9 @@
<Unit37> <Unit37>
<Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2winapi.inc"/> <Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2winapi.inc"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="7097"/> <TopLine Value="220"/>
<CursorPos X="15" Y="7124"/> <CursorPos X="39" Y="234"/>
<UsageCount Value="9"/> <UsageCount Value="10"/>
</Unit37> </Unit37>
<Unit38> <Unit38>
<Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2widgetset.inc"/> <Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2widgetset.inc"/>
@ -400,14 +397,14 @@
<Unit52> <Unit52>
<Filename Value="../../../source/uCEFChromiumCore.pas"/> <Filename Value="../../../source/uCEFChromiumCore.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="2506"/> <TopLine Value="2505"/>
<CursorPos Y="2529"/> <CursorPos X="63" Y="2526"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Bookmarks Count="4"> <Bookmarks Count="4">
<Item0 Y="4619" ID="2"/> <Item0 Y="6356" ID="2"/>
<Item1 X="41" Y="2931" ID="9"/> <Item1 X="67" Y="4620" ID="1"/>
<Item2 Y="6346" ID="1"/> <Item2 X="50" Y="447" ID="3"/>
<Item3 Y="2529" ID="3"/> <Item3 X="10" Y="2528" ID="4"/>
</Bookmarks> </Bookmarks>
</Unit52> </Unit52>
<Unit53> <Unit53>
@ -529,13 +526,9 @@
<Unit69> <Unit69>
<Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2proc.inc"/> <Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2proc.inc"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="8852"/> <TopLine Value="4630"/>
<CursorPos X="37" Y="8887"/> <CursorPos Y="4653"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Bookmarks Count="2">
<Item0 X="91" Y="1895" ID="1"/>
<Item1 X="42" Y="2240" ID="2"/>
</Bookmarks>
</Unit69> </Unit69>
<Unit70> <Unit70>
<Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2proc.pp"/> <Filename Value="/usr/share/lazarus/2.0.10/lcl/interfaces/gtk2/gtk2proc.pp"/>
@ -584,9 +577,9 @@
<Unit76> <Unit76>
<Filename Value="../../../source/uCEFTypes.pas"/> <Filename Value="../../../source/uCEFTypes.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="1404"/> <TopLine Value="880"/>
<CursorPos X="17" Y="1427"/> <CursorPos X="5" Y="903"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
</Unit76> </Unit76>
<Unit77> <Unit77>
<Filename Value="/usr/share/fpcsrc/3.2.0/rtl/inc/objpash.inc"/> <Filename Value="/usr/share/fpcsrc/3.2.0/rtl/inc/objpash.inc"/>
@ -709,10 +702,11 @@
</Unit93> </Unit93>
<Unit94> <Unit94>
<Filename Value="../../../source/uCEFBitmapBitBuffer.pas"/> <Filename Value="../../../source/uCEFBitmapBitBuffer.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="2"/>
<TopLine Value="153"/> <TopLine Value="56"/>
<CursorPos X="3" Y="172"/> <CursorPos X="19" Y="79"/>
<UsageCount Value="13"/> <UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit94> </Unit94>
<Unit95> <Unit95>
<Filename Value="/usr/share/lazarus/2.0.10/components/lazutils/LazLoggerIntf.inc"/> <Filename Value="/usr/share/lazarus/2.0.10/components/lazutils/LazLoggerIntf.inc"/>
@ -812,27 +806,150 @@
<Unit109> <Unit109>
<Filename Value="../../../source/uCEFInterfaces.pas"/> <Filename Value="../../../source/uCEFInterfaces.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="452"/> <TopLine Value="455"/>
<CursorPos Y="488"/> <CursorPos X="66" Y="487"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit109> </Unit109>
<Unit110> <Unit110>
<Filename Value="../../../source/uCEFTask.pas"/> <Filename Value="../../../source/uCEFTask.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="641"/> <TopLine Value="638"/>
<CursorPos Y="684"/> <CursorPos Y="683"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit110> </Unit110>
<Unit111>
<Filename Value="/usr/share/fpcsrc/3.2.0/rtl/inc/typshrdh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="39"/>
<CursorPos X="3" Y="62"/>
<UsageCount Value="10"/>
</Unit111>
</Units> </Units>
<OtherDefines Count="2"> <OtherDefines Count="2">
<Define0 Value="UseCthreads"/> <Define0 Value="UseCthreads"/>
<Define1 Value="EnabledGtkThreading"/> <Define1 Value="EnabledGtkThreading"/>
</OtherDefines> </OtherDefines>
<JumpHistory Count="1"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="usimpleosrbrowser.pas"/> <Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="359" Column="27" TopLine="341"/> <Caret Line="521" Column="3" TopLine="515"/>
</Position1> </Position1>
<Position2>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="81" Column="15" TopLine="58"/>
</Position2>
<Position3>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="533" Column="3" TopLine="527"/>
</Position3>
<Position4>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="82" Column="15" TopLine="59"/>
</Position4>
<Position5>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="551" Column="3" TopLine="554"/>
</Position5>
<Position6>
<Filename Value="../../../source/uCEFBufferPanel.pas"/>
<Caret Line="150" Column="19" TopLine="128"/>
</Position6>
<Position7>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="571" Column="60" TopLine="555"/>
</Position7>
<Position8>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="83" Column="15" TopLine="59"/>
</Position8>
<Position9>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="639" Column="3" TopLine="636"/>
</Position9>
<Position10>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="84" Column="15" TopLine="61"/>
</Position10>
<Position11>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="652" Column="3" TopLine="649"/>
</Position11>
<Position12>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="85" Column="15" TopLine="62"/>
</Position12>
<Position13>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="662" Column="3" TopLine="659"/>
</Position13>
<Position14>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="79" Column="15" TopLine="63"/>
</Position14>
<Position15>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="507" Column="24" TopLine="499"/>
</Position15>
<Position16>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="124" Column="15" TopLine="99"/>
</Position16>
<Position17>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="805" TopLine="780"/>
</Position17>
<Position18>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="505" TopLine="489"/>
</Position18>
<Position19>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="808" Column="5" TopLine="782"/>
</Position19>
<Position20>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="512" Column="19" TopLine="489"/>
</Position20>
<Position21>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="808" TopLine="787"/>
</Position21>
<Position22>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="807" Column="44" TopLine="787"/>
</Position22>
<Position23>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="135" Column="15" TopLine="104"/>
</Position23>
<Position24>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="858" Column="21" TopLine="828"/>
</Position24>
<Position25>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="136" Column="15" TopLine="113"/>
</Position25>
<Position26>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="872" Column="21" TopLine="829"/>
</Position26>
<Position27>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="125" Column="15" TopLine="104"/>
</Position27>
<Position28>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="810" Column="62" TopLine="799"/>
</Position28>
<Position29>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="869" Column="98" TopLine="833"/>
</Position29>
<Position30>
<Filename Value="usimpleosrbrowser.pas"/>
<Caret Line="87" Column="15" TopLine="83"/>
</Position30>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>

View File

@ -1,7 +1,7 @@
object Form1: TForm1 object Form1: TForm1
Left = 518 Left = 518
Height = 630 Height = 630
Top = 252 Top = 251
Width = 1000 Width = 1000
Caption = ' Initializing browser. Please wait...' Caption = ' Initializing browser. Please wait...'
ClientHeight = 630 ClientHeight = 630
@ -12,6 +12,7 @@ object Form1: TForm1
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnHide = FormHide OnHide = FormHide
OnShow = FormShow OnShow = FormShow
Position = poScreenCenter
LCLVersion = '2.0.10.0' LCLVersion = '2.0.10.0'
object AddressPnl: TPanel object AddressPnl: TPanel
Left = 0 Left = 0
@ -78,6 +79,7 @@ object Form1: TForm1
Color = clWhite Color = clWhite
ParentColor = False ParentColor = False
TabOrder = 1 TabOrder = 1
TabStop = True
OnClick = Panel1Click OnClick = Panel1Click
OnEnter = Panel1Enter OnEnter = Panel1Enter
OnExit = Panel1Exit OnExit = Panel1Exit
@ -85,9 +87,9 @@ object Form1: TForm1
OnMouseMove = Panel1MouseMove OnMouseMove = Panel1MouseMove
OnMouseUp = Panel1MouseUp OnMouseUp = Panel1MouseUp
OnMouseWheel = Panel1MouseWheel OnMouseWheel = Panel1MouseWheel
OnResize = Panel1Resize
OnMouseEnter = Panel1MouseEnter OnMouseEnter = Panel1MouseEnter
OnMouseLeave = Panel1MouseLeave OnMouseLeave = Panel1MouseLeave
OnResize = Panel1Resize
end end
object Chromium1: TChromium object Chromium1: TChromium
OnTooltip = Chromium1Tooltip OnTooltip = Chromium1Tooltip

View File

@ -110,6 +110,7 @@ type
FBrowserCS : TCriticalSection; FBrowserCS : TCriticalSection;
FPanelCursor : TCursor; FPanelCursor : TCursor;
FPanelHint : ustring; FPanelHint : ustring;
FPanelOffset : TPoint;
function GetPanelCursor : TCursor; function GetPanelCursor : TCursor;
function GetPanelHint : ustring; function GetPanelHint : ustring;
@ -121,6 +122,7 @@ type
function getModifiers(Shift: TShiftState): TCefEventFlags; function getModifiers(Shift: TShiftState): TCefEventFlags;
function GetButton(Button: TMouseButton): TCefMouseButtonType; function GetButton(Button: TMouseButton): TCefMouseButtonType;
procedure DoResize; procedure DoResize;
procedure UpdatePanelOffset;
procedure BrowserCreatedMsg(Data: PtrInt); procedure BrowserCreatedMsg(Data: PtrInt);
procedure BrowserCloseFormMsg(Data: PtrInt); procedure BrowserCloseFormMsg(Data: PtrInt);
@ -308,7 +310,6 @@ end;
procedure TForm1.FormActivate(Sender: TObject); procedure TForm1.FormActivate(Sender: TObject);
begin begin
// You *MUST* call CreateBrowser to create and initialize the browser.
// This will trigger the AfterCreated event when the browser is fully // This will trigger the AfterCreated event when the browser is fully
// initialized and ready to receive commands. // initialized and ready to receive commands.
@ -323,6 +324,8 @@ begin
// We have to update the DeviceScaleFactor here to get the scale of the // We have to update the DeviceScaleFactor here to get the scale of the
// monitor where the main application form is located. // monitor where the main application form is located.
GlobalCEFApp.UpdateDeviceScaleFactor; GlobalCEFApp.UpdateDeviceScaleFactor;
Panel1.UpdateDeviceScaleFactor;
UpdatePanelOffset;
// opaque white background color // opaque white background color
Chromium1.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF); Chromium1.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF);
@ -497,20 +500,22 @@ begin
Result := True; Result := True;
end; end;
procedure TForm1.Chromium1GetScreenPoint(Sender: TObject; procedure TForm1.Chromium1GetScreenPoint( Sender : TObject;
const browser: ICefBrowser; viewX, viewY: Integer; var screenX, const browser : ICefBrowser;
screenY: Integer; out Result: Boolean); viewX : Integer;
var viewY : Integer;
TempScreenPt, TempViewPt : TPoint; var screenX : Integer;
TempScale : single; var screenY : Integer;
out Result : Boolean);
begin begin
TempScale := Panel1.ScreenScale; try
TempViewPt.x := LogicalToDevice(viewX, TempScale); FBrowserCS.Acquire;
TempViewPt.y := LogicalToDevice(viewY, TempScale); screenX := LogicalToDevice(viewX, Panel1.ScreenScale) + FPanelOffset.x;
TempScreenPt := Panel1.ClientToScreen(TempViewPt); screenY := LogicalToDevice(viewY, Panel1.ScreenScale) + FPanelOffset.y;
screenX := TempScreenPt.x; Result := True;
screenY := TempScreenPt.y; finally
Result := True; FBrowserCS.Release;
end;
end; end;
procedure TForm1.Chromium1GetViewRect(Sender: TObject; procedure TForm1.Chromium1GetViewRect(Sender: TObject;
@ -796,6 +801,20 @@ begin
end; end;
end; end;
procedure TForm1.UpdatePanelOffset;
var
TempPoint : TPoint;
begin
try
FBrowserCS.Acquire;
TempPoint.x := 0;
TempPoint.y := 0;
FPanelOffset := Panel1.ClientToScreen(TempPoint);
finally
FBrowserCS.Release;
end;
end;
function TForm1.GetPanelCursor : TCursor; function TForm1.GetPanelCursor : TCursor;
begin begin
try try
@ -839,18 +858,21 @@ end;
procedure TForm1.WMMove(var Message: TLMMove); procedure TForm1.WMMove(var Message: TLMMove);
begin begin
inherited; inherited;
UpdatePanelOffset;
Chromium1.NotifyMoveOrResizeStarted; Chromium1.NotifyMoveOrResizeStarted;
end; end;
procedure TForm1.WMSize(var Message: TLMSize); procedure TForm1.WMSize(var Message: TLMSize);
begin begin
inherited; inherited;
UpdatePanelOffset;
Chromium1.NotifyMoveOrResizeStarted; Chromium1.NotifyMoveOrResizeStarted;
end; end;
procedure TForm1.WMWindowPosChanged(var Message: TLMWindowPosChanged); procedure TForm1.WMWindowPosChanged(var Message: TLMWindowPosChanged);
begin begin
inherited; inherited;
UpdatePanelOffset;
Chromium1.NotifyMoveOrResizeStarted; Chromium1.NotifyMoveOrResizeStarted;
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="88" Minor="2" Release="7"/> <Version Major="88" Minor="2" Release="8"/>
<Files Count="197"> <Files Count="197">
<Item1> <Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/> <Filename Value="..\source\uCEFAccessibilityHandler.pas"/>

View File

@ -66,7 +66,7 @@ uses
const const
CEF_SUPPORTED_VERSION_MAJOR = 88; CEF_SUPPORTED_VERSION_MAJOR = 88;
CEF_SUPPORTED_VERSION_MINOR = 2; CEF_SUPPORTED_VERSION_MINOR = 2;
CEF_SUPPORTED_VERSION_RELEASE = 7; CEF_SUPPORTED_VERSION_RELEASE = 8;
CEF_SUPPORTED_VERSION_BUILD = 0; CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = 88; CEF_CHROMEELF_VERSION_MAJOR = 88;

View File

@ -2,9 +2,9 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 257, "InternalVersion" : 258,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "88.2.7.0" "Version" : "88.2.8.0"
} }
], ],
"UpdatePackageData" : { "UpdatePackageData" : {