Browse Source

FIX: COCOA: Window state was not properly restored on startup (#740)

rich2014 2 năm trước cách đây
mục cha
commit
0761817cfe
2 tập tin đã thay đổi với 11 bổ sung0 xóa
  1. 3 0
      src/doublecmd.lpr
  2. 8 0
      src/fmain.pas

+ 3 - 0
src/doublecmd.lpr

@@ -233,6 +233,9 @@ begin
       end;
       end;
 
 
       frmMain.ShowOnTop;
       frmMain.ShowOnTop;
+      {$IFDEF LCLCOCOA}
+      frmMain.RestoreWindow;
+      {$ENDIF}
 
 
       Application.Run;
       Application.Run;
 
 

+ 8 - 0
src/fmain.pas

@@ -788,7 +788,9 @@ type
 
 
   protected
   protected
     procedure CreateWnd; override;
     procedure CreateWnd; override;
+    {$IFNDEF LCLCOCOA}
     procedure DoFirstShow; override;
     procedure DoFirstShow; override;
+    {$ENDIF}
     procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
     procedure DoAutoAdjustLayout(const AMode: TLayoutAdjustmentPolicy;
                             const AXProportion, AYProportion: Double); override;
                             const AXProportion, AYProportion: Double); override;
 
 
@@ -3982,6 +3984,7 @@ begin
   Application.MainForm.Tag:= Handle;
   Application.MainForm.Tag:= Handle;
 end;
 end;
 
 
+{$IFNDEF LCLCOCOA}
 procedure TfrmMain.DoFirstShow;
 procedure TfrmMain.DoFirstShow;
 var
 var
   ANode: TXmlNode;
   ANode: TXmlNode;
@@ -3996,6 +3999,7 @@ begin
 
 
   lastWindowState := WindowState;
   lastWindowState := WindowState;
 end;
 end;
+{$ENDIF}
 
 
 procedure TfrmMain.WMMove(var Message: TLMMove);
 procedure TfrmMain.WMMove(var Message: TLMMove);
 begin
 begin
@@ -6178,6 +6182,10 @@ begin
       FRestoredWidth := MulDiv(FRestoredWidth, Screen.PixelsPerInch, FPixelsPerInch);
       FRestoredWidth := MulDiv(FRestoredWidth, Screen.PixelsPerInch, FPixelsPerInch);
       FRestoredHeight := MulDiv(FRestoredHeight, Screen.PixelsPerInch, FPixelsPerInch);
       FRestoredHeight := MulDiv(FRestoredHeight, Screen.PixelsPerInch, FPixelsPerInch);
     end;
     end;
+    if gConfig.GetValue(ANode, 'Maximized', True) then
+      lastWindowState:= TWindowState.wsMaximized
+    else
+      lastWindowState:= TWindowState.wsNormal;
     SetBounds(FRestoredLeft, FRestoredTop, FRestoredWidth, FRestoredHeight);
     SetBounds(FRestoredLeft, FRestoredTop, FRestoredWidth, FRestoredHeight);
   end;
   end;
 end;
 end;