Browse Source

--- Merging r40804 into '.':
U packages/ide/fpmwnd.inc
U packages/ide/fpide.pas
--- Recording mergeinfo for merge of r40804 into '.':
U .
--- Merging r40811 into '.':
U packages/fv/src/editors.pas
U packages/fv/src/statuses.pas
U packages/fv/src/validate.pas
--- Recording mergeinfo for merge of r40811 into '.':
G .

# revisions: 40804,40811
r40804 | michael | 2019-01-08 05:15:38 +0100 (Tue, 08 Jan 2019) | 1 line
Changed paths:
M /trunk/packages/ide/fpide.pas
M /trunk/packages/ide/fpmwnd.inc

* Apply patch from Margers to fix bug ID #6496
r40811 | marco | 2019-01-09 11:18:36 +0100 (Wed, 09 Jan 2019) | 1 line
Changed paths:
M /trunk/packages/fv/src/editors.pas
M /trunk/packages/fv/src/statuses.pas
M /trunk/packages/fv/src/validate.pas

* patch from Margers that fixes parameter arrays formatstr, mantis 34839

git-svn-id: branches/fixes_3_2@41895 -

marco 6 years ago
parent
commit
15b84360ab

+ 1 - 1
packages/fv/src/editors.pas

@@ -1180,7 +1180,7 @@ procedure TIndicator.Draw;
 VAR
   Color : Byte;
   Frame : Char;
-  L     : array[0..1] of Longint;
+  L     : array[0..1] of PtrInt;
   S     : String[15];
   B     : TDrawBuffer;
 begin

+ 1 - 1
packages/fv/src/statuses.pas

@@ -785,7 +785,7 @@ var
   B : TDrawBuffer;
   C : Word;
   FillSize : Word;
-  PercentDone : LongInt;
+  PercentDone : PtrInt;
   S : String[4];
 begin
   { fill entire view }

+ 1 - 1
packages/fv/src/validate.pas

@@ -919,7 +919,7 @@ END;
 {---------------------------------------------------------------------------}
 PROCEDURE TRangeValidator.Error;
 CONST PXErrMsg = 'Value not in the range';
-VAR Params: Array[0..1] Of Longint;
+VAR Params: Array[0..1] Of PtrInt;
 BEGIN
    Params[0] := Min;                                  { Transfer min value }
    Params[1] := Max;                                  { Transfer max value }

+ 21 - 6
packages/ide/fpide.pas

@@ -1662,7 +1662,10 @@ procedure TIDEApp.UpdateRecentFileList;
 var P: PMenuItem;
     {ID,}I: word;
     FileMenu: PMenuItem;
+    R: TRect;
+    AdjustRecentCount : word;
 begin
+  if not assigned(MenuBar) then exit;
 {  ID:=cmRecentFileBase;}
   FileMenu:=SearchSubMenu(MenuBar^.Menu,menuFile);
   repeat
@@ -1688,13 +1691,25 @@ begin
   if (P<>nil) and IsSeparator(P) then
      RemoveMenuItem(FileMenu^.SubMenu,P);
 
-  if RecentFileCount>0 then
-     AppendMenuItem(FileMenu^.SubMenu,NewLine(nil));
-  for I:=1 to RecentFileCount do
+  GetExtent(R);
+  AdjustRecentCount :=0;
+  {calculate how much lines on screen for reacent files can be used }
+  if r.b.y-r.a.y -19 > 0 then AdjustRecentCount:=r.b.y-r.a.y -19;
+  {only if there is enough space then show all reacent files }
+  {else cut list shorter }
+  if RecentFileCount < AdjustRecentCount then
+     AdjustRecentCount:=RecentFileCount;
+
+  if AdjustRecentCount>0 then
   begin
-    P:=NewItem('~'+IntToStr(I)+'~ '+ShrinkPath(SmartPath(RecentFiles[I].FileName),27),' ',
-        kbNoKey,cmRecentFileBase+I,hcRecentFileBase+I,nil);
-    AppendMenuItem(FileMenu^.SubMenu,P);
+     AppendMenuItem(FileMenu^.SubMenu,NewLine(nil));
+
+    for I:=1 to AdjustRecentCount do
+    begin
+      P:=NewItem('~'+IntToStr(I)+'~ '+ShrinkPath(SmartPath(RecentFiles[I].FileName),27),' ',
+          kbNoKey,cmRecentFileBase+I,hcRecentFileBase+I,nil);
+      AppendMenuItem(FileMenu^.SubMenu,P);
+    end;
   end;
 end;
 

+ 1 - 0
packages/ide/fpmwnd.inc

@@ -38,6 +38,7 @@ begin
       Mode.col:=x;
       Mode.row:=y;
       SetScreenVideoMode(Mode);
+      UpdateRecentFileList; {ensure file menu not go over screen}
       Redraw;
     end;
 end;