1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-11-23 21:34:53 +02:00

Moved TChromium.InitializeDragAndDrop to TForm.OnShow in PopupBrowser

This commit is contained in:
Salvador Díaz Fau
2019-11-26 10:59:04 +01:00
parent c455886d29
commit 1d8773c42c
5 changed files with 65 additions and 46 deletions

View File

@@ -50,7 +50,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, SyncObjs,
Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, AppEvnts,
{$ENDIF}
uCEFChromium, uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFBufferPanel;
uCEFChromium, uCEFTypes, uCEFInterfaces, uCEFConstants, uCEFBufferPanel,
uCEFChromiumCore;
const
CEF_SHOWCHILD = WM_APP + $A52;
@@ -77,7 +78,7 @@ type
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Paint(Sender: TObject; const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);
procedure Chromium1Paint(Sender: TObject; const browser: ICefBrowser; type_: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);
procedure Chromium1CursorChange(Sender: TObject; const browser: ICefBrowser; cursor: HICON; cursorType: TCefCursorType; const customCursorInfo: PCefCursorInfo);
procedure Chromium1GetViewRect(Sender: TObject; const browser: ICefBrowser; var rect: TCefRect);
procedure Chromium1GetScreenPoint(Sender: TObject; const browser: ICefBrowser; viewX, viewY: Integer; var screenX, screenY: Integer; out Result: Boolean);
@@ -306,8 +307,6 @@ function TChildForm.CreateClientHandler(var windowInfo : TCefWindowInfo;
const targetFrameName : string;
const popupFeatures : TCefPopupFeatures) : boolean;
begin
Chromium1.InitializeDragAndDrop(Panel1);
WindowInfoAsWindowless(windowInfo, 0, targetFrameName);
FPopupFeatures := popupFeatures;
FClientInitialized := Chromium1.CreateClientHandler(client);
@@ -328,7 +327,7 @@ begin
PostMessage(Handle, WM_CLOSE, 0, 0);
end;
procedure TChildForm.Chromium1BeforePopup(Sender : TObject;
procedure TChildForm.Chromium1BeforePopup( Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
const targetUrl : ustring;
@@ -354,7 +353,7 @@ begin
end;
end;
procedure TChildForm.Chromium1CursorChange(Sender : TObject;
procedure TChildForm.Chromium1CursorChange( Sender : TObject;
const browser : ICefBrowser;
cursor : HICON;
cursorType : TCefCursorType;
@@ -363,7 +362,7 @@ begin
Panel1.Cursor := CefCursorToWindowsCursor(cursorType);
end;
procedure TChildForm.Chromium1GetScreenInfo(Sender : TObject;
procedure TChildForm.Chromium1GetScreenInfo( Sender : TObject;
const browser : ICefBrowser;
var screenInfo : TCefScreenInfo;
out Result : Boolean);
@@ -390,7 +389,7 @@ begin
Result := False;
end;
procedure TChildForm.Chromium1GetScreenPoint(Sender : TObject;
procedure TChildForm.Chromium1GetScreenPoint( Sender : TObject;
const browser : ICefBrowser;
viewX : Integer;
viewY : Integer;
@@ -413,7 +412,7 @@ begin
Result := False;
end;
procedure TChildForm.Chromium1GetViewRect(Sender : TObject;
procedure TChildForm.Chromium1GetViewRect( Sender : TObject;
const browser : ICefBrowser;
var rect : TCefRect);
begin
@@ -428,7 +427,7 @@ end;
procedure TChildForm.Chromium1Paint( Sender : TObject;
const browser : ICefBrowser;
kind : TCefPaintElementType;
type_ : TCefPaintElementType;
dirtyRectsCount : NativeUInt;
const dirtyRects : PCefRectArray;
const buffer : Pointer;
@@ -448,7 +447,7 @@ begin
if Panel1.BeginBufferDraw then
begin
if (kind = PET_POPUP) then
if (type_ = PET_POPUP) then
begin
if (FPopUpBitmap = nil) or
(width <> FPopUpBitmap.Width) or
@@ -523,7 +522,7 @@ begin
Panel1.EndBufferDraw;
Panel1.InvalidatePanel;
if (kind = PET_VIEW) then
if (type_ = PET_VIEW) then
begin
if TempForcedResize or FPendingResize then PostMessage(Handle, CEF_PENDINGRESIZE, 0, 0);
@@ -536,7 +535,7 @@ begin
end;
end;
procedure TChildForm.Chromium1PopupShow(Sender : TObject;
procedure TChildForm.Chromium1PopupShow( Sender : TObject;
const browser : ICefBrowser;
show : Boolean);
begin
@@ -547,11 +546,11 @@ begin
FShowPopUp := False;
FPopUpRect := rect(0, 0, 0, 0);
if (Chromium1 <> nil) then Chromium1.Invalidate(PET_VIEW);
Chromium1.Invalidate(PET_VIEW);
end;
end;
procedure TChildForm.Chromium1PopupSize(Sender : TObject;
procedure TChildForm.Chromium1PopupSize( Sender : TObject;
const browser : ICefBrowser;
const rect : PCefRect);
begin
@@ -566,12 +565,17 @@ begin
end;
end;
procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure TChildForm.Chromium1TitleChange( Sender : TObject;
const browser : ICefBrowser;
const title : ustring);
begin
Caption := title;
end;
procedure TChildForm.Chromium1Tooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure TChildForm.Chromium1Tooltip( Sender : TObject;
const browser : ICefBrowser;
var text : ustring;
out Result : Boolean);
begin
Panel1.hint := text;
Panel1.ShowHint := (length(text) > 0);
@@ -603,28 +607,28 @@ procedure TChildForm.WMMove(var aMessage : TWMMove);
begin
inherited;
if (Chromium1 <> nil) then Chromium1.NotifyMoveOrResizeStarted;
Chromium1.NotifyMoveOrResizeStarted;
end;
procedure TChildForm.WMMoving(var aMessage : TMessage);
begin
inherited;
if (Chromium1 <> nil) then Chromium1.NotifyMoveOrResizeStarted;
Chromium1.NotifyMoveOrResizeStarted;
end;
procedure TChildForm.WMCaptureChanged(var aMessage : TMessage);
begin
inherited;
if (Chromium1 <> nil) then Chromium1.SendCaptureLostEvent;
Chromium1.SendCaptureLostEvent;
end;
procedure TChildForm.WMCancelMode(var aMessage : TMessage);
begin
inherited;
if (Chromium1 <> nil) then Chromium1.SendCaptureLostEvent;
Chromium1.SendCaptureLostEvent;
end;
procedure TChildForm.WMEnterMenuLoop(var aMessage: TMessage);
@@ -643,11 +647,8 @@ end;
procedure TChildForm.FormAfterMonitorDpiChanged(Sender: TObject; OldDPI, NewDPI: Integer);
begin
if (Chromium1 <> nil) then
begin
Chromium1.NotifyScreenInfoChanged;
Chromium1.WasResized;
end;
Chromium1.NotifyScreenInfoChanged;
Chromium1.WasResized;
end;
procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
@@ -663,7 +664,11 @@ begin
begin
FClosing := True;
Visible := False;
Chromium1.CloseBrowser(True);
if Chromium1.Initialized then
Chromium1.CloseBrowser(True)
else
CanClose := True;
end;
end;
@@ -700,6 +705,7 @@ end;
procedure TChildForm.FormShow(Sender: TObject);
begin
Chromium1.InitializeDragAndDrop(Panel1);
Chromium1.WasHidden(False);
Chromium1.SendFocusEvent(True);
end;
@@ -714,7 +720,7 @@ var
TempEvent : TCefMouseEvent;
TempTime : integer;
begin
if (GlobalCEFApp <> nil) and (Chromium1 <> nil) then
if (GlobalCEFApp <> nil) then
begin
Panel1.SetFocus;
@@ -744,7 +750,7 @@ var
TempPoint : TPoint;
TempTime : integer;
begin
if (GlobalCEFApp <> nil) and (Chromium1 <> nil) then
if (GlobalCEFApp <> nil) then
begin
GetCursorPos(TempPoint);
TempPoint := Panel1.ScreenToclient(TempPoint);
@@ -764,7 +770,7 @@ var
TempEvent : TCefMouseEvent;
TempTime : integer;
begin
if (GlobalCEFApp <> nil) and (Chromium1 <> nil) then
if (GlobalCEFApp <> nil) then
begin
if CancelPreviousClick(x, y, TempTime) then InitializeLastClick;
@@ -780,7 +786,7 @@ procedure TChildForm.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift:
var
TempEvent : TCefMouseEvent;
begin
if (GlobalCEFApp <> nil) and (Chromium1 <> nil) then
if (GlobalCEFApp <> nil) then
begin
TempEvent.x := X;
TempEvent.y := Y;