瀏覽代碼

TFresnelViewport: register events on first instance

mattias 2 年之前
父節點
當前提交
3302eeb85f
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      src/fresnel.dom.pas

+ 8 - 0
src/fresnel.dom.pas

@@ -568,6 +568,8 @@ type
     FWidth: TFresnelLength;
     FWidth: TFresnelLength;
     FMaxPreferredWidth: TFresnelLength;
     FMaxPreferredWidth: TFresnelLength;
     procedure CSSResolverLog(Sender: TObject; Entry: TCSSResolverLogEntry);
     procedure CSSResolverLog(Sender: TObject; Entry: TCSSResolverLogEntry);
+  protected
+    class var FFresnelEventsRegistered: boolean;
   protected
   protected
     function GetDPI(IsHorizontal: boolean): TFresnelLength; override;
     function GetDPI(IsHorizontal: boolean): TFresnelLength; override;
     function GetHeight: TFresnelLength; virtual;
     function GetHeight: TFresnelLength; virtual;
@@ -1569,6 +1571,12 @@ begin
   FCSSResolver.OnLog:=@CSSResolverLog;
   FCSSResolver.OnLog:=@CSSResolverLog;
   FStylesheet:=TStringList.Create(false);
   FStylesheet:=TStringList.Create(false);
   FStylesheet.FPOAttachObserver(Self);
   FStylesheet.FPOAttachObserver(Self);
+
+  if not FFresnelEventsRegistered then
+  begin
+    FFresnelEventsRegistered:=true;
+    TFresnelEventDispatcher.RegisterFresnelEvents;
+  end;
 end;
 end;
 
 
 { TFresnelElement }
 { TFresnelElement }