Changeset 523


Ignore:
Timestamp:
Jan 7, 2024, 11:23:36 PM (11 months ago)
Author:
chronos
Message:
  • Fixed: Avoid repeatedly calling Term form resize and repaint in case of fractional scaling.
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LocalPlayer/Term.pas

    r522 r523  
    47894789          else if xw > xwd then
    47904790            ProcessRect((xwd + MapWidth div (xxt * 2)) mod G.lx, ywd,
    4791               (xw - xwd) * 2 + 1, MapHeight div yyt - ywd + yw, ProcessOptions)
     4791              (xw - xwd) * 2 + 1, MapHeight div yyt - ywd + yw, ProcessOptions);
    47924792        end
    47934793        else if yw > ywd then begin
     
    49574957        ImpImage(Panel.Canvas, ClientWidth - xPalace, yPalace, imPalace, -1,
    49584958          GameMode <> cMovie
    4959           { (GameMode<>cMovie) and (MyRO.Government<>gAnarchy) } )
     4959          { (GameMode <> cMovie) and (MyRO.Government <> gAnarchy) } )
    49604960      else
    49614961        ImpImage(Panel.Canvas, ClientWidth - xPalace, yPalace, 21, -1,
    49624962          GameMode <> cMovie
    4963           { (GameMode<>cMovie) and (MyRO.Government<>gAnarchy) } );
     4963          { (GameMode <> cMovie) and (MyRO.Government <> gAnarchy) } );
    49644964    end;
    49654965
     
    49954995          xSrcBase := -1;
    49964996          case BrushTypes[I] of
    4997             0 .. 8:
     4997            0..8:
    49984998              begin
    49994999                xSrc := BrushTypes[I];
    5000                 ySrc := 0
     5000                ySrc := 0;
    50015001              end;
    5002             9 .. 30:
     5002            9..30:
    50035003              begin
    50045004                xSrcBase := 2;
     
    50105010              begin
    50115011                xSrc := 7;
    5012                 ySrc := 14
     5012                ySrc := 14;
    50135013              end;
    50145014            fRoad:
    50155015              begin
    50165016                xSrc := 0;
    5017                 ySrc := 9
     5017                ySrc := 9;
    50185018              end;
    50195019            fRR:
    50205020              begin
    50215021                xSrc := 0;
    5022                 ySrc := 10
     5022                ySrc := 10;
    50235023              end;
    50245024            fCanal:
    50255025              begin
    50265026                xSrc := 0;
    5027                 ySrc := 11
     5027                ySrc := 11;
    50285028              end;
    50295029            fPoll:
    50305030              begin
    50315031                xSrc := 6;
    5032                 ySrc := 12
     5032                ySrc := 12;
    50335033              end;
    50345034            fDeadLands, fDeadLands or fCobalt, fDeadLands or fUranium,
     
    50435043              begin
    50445044                xSrc := BrushTypes[I] shr 12 - 1;
    5045                 ySrc := 12
     5045                ySrc := 12;
    50465046              end;
    50475047            tiFort:
     
    50505050                ySrc := 12;
    50515051                xSrcBase := 7;
    5052                 ySrcBase := 12
     5052                ySrcBase := 12;
    50535053              end;
    50545054            fPrefStartPos:
    50555055              begin
    50565056                xSrc := 0;
    5057                 ySrc := 1
     5057                ySrc := 1;
    50585058              end;
    50595059            fStartPos:
    50605060              begin
    50615061                xSrc := 0;
    5062                 ySrc := 2
     5062                ySrc := 2;
    50635063              end;
    50645064          end;
  • trunk/Packages/DpiControls/Dpi.Common.pas

    r522 r523  
    8989  uFlags: UINT): Boolean;
    9090begin
    91   LCLIntf.SetWindowPos(hWnd, hWndInsertAfter, ScaleToNative(X), ScaleToNative(Y),
     91  Result := LCLIntf.SetWindowPos(hWnd, hWndInsertAfter, ScaleToNative(X), ScaleToNative(Y),
    9292    ScaleToNative(cx), ScaleToNative(cy), uFlags);
    9393end;
     
    105105function ScaleFromNative(Value: Integer): Integer;
    106106begin
    107   Result := Round(Value * 96 / ScreenInfo.Dpi);
     107  Result := Floor(Value * 96 / ScreenInfo.Dpi);
    108108end;
    109109
  • trunk/Packages/DpiControls/Dpi.Controls.pas

    r482 r523  
    10281028
    10291029procedure TControl.NativeFormResize(Sender: TObject);
    1030 begin
    1031   BoundsRect := ScaleRectFromNative(GetNativeControl.BoundsRect);
     1030var
     1031  R: TRect;
     1032begin
     1033  R := ScaleRectFromNative(GetNativeControl.BoundsRect);
     1034  FLeft := R.Left;
     1035  FTop := R.Top;
     1036  FWidth := R.Width;
     1037  FHeight := R.Height;
    10321038  DoFormResize;
    10331039end;
     
    10701076
    10711077procedure TControl.UpdateBounds;
    1072 var
    1073   R: TRect;
    10741078begin
    10751079  GetNativeControl.BoundsRect := ScaleRectToNative(BoundsRect);
    1076   R := ScaleRectToNative(BoundsRect);
    1077   //WriteLog(Name + ' ' + IntToStr(R.Left) + ', ' + IntToStr(R.Top) + ', ' + IntToStr(R.Width) + ', ' + IntToStr(R.Height))
    10781080end;
    10791081
Note: See TracChangeset for help on using the changeset viewer.