Skip to content

Commit c93fb59

Browse files
committed
Draw navigation button tooltips with proper UIScale. It is not pixel-perfect, but the geometry is correct now.
1 parent fd8f10c commit c93fb59

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

code/v3dscenenavigationtypes.pas

+12-6
Original file line numberDiff line numberDiff line change
@@ -236,19 +236,25 @@ procedure TNavigationTypeButton.TooltipRender(const TooltipPosition: TVector2);
236236
ImgMargin = 8;
237237
var
238238
ButtonR, R: TFloatRectangle;
239+
CachedUIScale: Float;
239240
begin
240241
ButtonR := RenderRect;
242+
CachedUIScale := UIScale; { make a UIScale() call only once }
241243

242244
R := FloatRectangle(
243-
WindowBorderMargin,
244-
ButtonR.Bottom - ButtonBottomMargin - (ImageTooltip.Height + 2 * ImgMargin),
245-
ImageTooltip.Width + 2 * ImgMargin,
246-
ImageTooltip.Height + 2 * ImgMargin);
245+
WindowBorderMargin * CachedUIScale,
246+
ButtonR.Bottom - (ButtonBottomMargin + (ImageTooltip.Height + 2 * ImgMargin)) * CachedUIScale,
247+
(ImageTooltip.Width + 2 * ImgMargin) * CachedUIScale,
248+
(ImageTooltip.Height + 2 * ImgMargin) * CachedUIScale);
247249

248250
Theme.Draw(R, tiTooltip);
249-
ImageTooltip.DrawableImage.Draw(R.Left + ImgMargin, R.Bottom + ImgMargin);
251+
ImageTooltip.DrawableImage.Draw(R.Left + ImgMargin * CachedUIScale, R.Bottom + ImgMargin * CachedUIScale,
252+
ImageTooltip.Width * CachedUIScale,
253+
ImageTooltip.Height * CachedUIScale);
250254
{ we decrease R.Top to overdraw the tooltip image border }
251-
ImageTooltipArrow.DrawableImage.Draw(ButtonR.Left + (EffectiveWidth - ImageTooltipArrow.Width) / 2, R.Top - 1);
255+
ImageTooltipArrow.DrawableImage.Draw(ButtonR.Left + (EffectiveWidth - ImageTooltipArrow.Width) * CachedUIScale / 2, R.Top - 1,
256+
ImageTooltipArrow.Width * CachedUIScale,
257+
ImageTooltipArrow.Height * CachedUIScale);
252258
end;
253259

254260
{ TNavigationUi -------------------------------------------------------------- }

0 commit comments

Comments
 (0)