浏览代码

FIX: DARWIN: Cursor not reset in Reactive Application on MacOS 13 (#732)

rich2014 2 年之前
父节点
当前提交
6e25b07251
共有 1 个文件被更改,包括 12 次插入1 次删除
  1. 12 1
      src/fmain.pas

+ 12 - 1
src/fmain.pas

@@ -873,6 +873,7 @@ type
     procedure LoadTabsCommandLine(Params: TCommandLineParams);
     procedure LoadTabsCommandLine(Params: TCommandLineParams);
     procedure AddTab(ANoteBook: TFileViewNotebook; aPath: String);
     procedure AddTab(ANoteBook: TFileViewNotebook; aPath: String);
     {$IF DEFINED(DARWIN)}
     {$IF DEFINED(DARWIN)}
+    procedure resetScreenCursor;
     procedure FormActivate(Sender: TObject);
     procedure FormActivate(Sender: TObject);
     procedure OnNSServiceOpenWithNewTab( filenames:TStringList );
     procedure OnNSServiceOpenWithNewTab( filenames:TStringList );
     function NSServiceMenuIsReady(): boolean;
     function NSServiceMenuIsReady(): boolean;
@@ -6092,12 +6093,17 @@ begin
 end;
 end;
 
 
 {$IF DEFINED(DARWIN)}
 {$IF DEFINED(DARWIN)}
-procedure TfrmMain.FormActivate(Sender: TObject);
+procedure TfrmMain.resetScreenCursor;
 begin
 begin
   Screen.Cursor:= crDefault;
   Screen.Cursor:= crDefault;
   cocoaInvalidControlCursor( self );
   cocoaInvalidControlCursor( self );
 end;
 end;
 
 
+procedure TfrmMain.FormActivate(Sender: TObject);
+begin
+  resetScreenCursor;
+end;
+
 procedure TfrmMain.OnNSServiceOpenWithNewTab( filenames:TStringList );
 procedure TfrmMain.OnNSServiceOpenWithNewTab( filenames:TStringList );
 begin
 begin
   if Assigned(filenames) and (filenames.Count>0) then
   if Assigned(filenames) and (filenames.Count>0) then
@@ -6978,6 +6984,11 @@ end;
 
 
 procedure TfrmMain.AppActivate(Sender: TObject);
 procedure TfrmMain.AppActivate(Sender: TObject);
 begin
 begin
+  {$IFDEF DARWIN}
+  if self.Active then
+    resetScreenCursor;
+  {$ENDIF}
+
   if Assigned(FrameLeft) then
   if Assigned(FrameLeft) then
     FrameLeft.ReloadIfNeeded;
     FrameLeft.ReloadIfNeeded;
   if Assigned(FrameRight) then
   if Assigned(FrameRight) then