WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
189397
Improvements to zooming helper functions
https://bugs.webkit.org/show_bug.cgi?id=189397
Summary
Improvements to zooming helper functions
Frédéric Wang (:fredw)
Reported
2018-09-06 23:30:05 PDT
We currently have at least three functions, with similar logic but different types of parameter. Maybe it would be possible to merge them into a single helper function. Some of them increment/decrement the value to workaround truncation and in
bug 182230
Simon suggested to just floor/ceil after the division by zoomFactor. Not sure how that would impact accuracy. RenderStyle.h: inline int adjustForAbsoluteZoom(int value, const RenderStyle& style) { double zoomFactor = style.effectiveZoom(); if (zoomFactor == 1) return value; // Needed because computeLengthInt truncates (rather than rounds) when scaling up. if (zoomFactor > 1) { if (value < 0) value--; else value++; } return roundForImpreciseConversion<int>(value / zoomFactor); } Element.cpp: static double adjustForLocalZoom(LayoutUnit value, const RenderElement& renderer, double& zoomFactor) { zoomFactor = localZoomForRenderer(renderer); if (zoomFactor == 1) return value.toDouble(); return value.toDouble() / zoomFactor; } HTMLBodyElement.cpp static int adjustForZoom(int value, const Frame& frame) { double zoomFactor = frame.pageZoomFactor() * frame.frameScaleFactor(); if (zoomFactor == 1) return value; // Needed because of truncation (rather than rounding) when scaling up. if (zoomFactor > 1) value++; return static_cast<int>(value / zoomFactor); }
Attachments
Add attachment
proposed patch, testcase, etc.
Ahmad Saleem
Comment 1
2023-09-02 08:55:43 PDT
Some clean-up from Blink's commit:
https://chromium.googlesource.com/chromium/src.git/+/ad54bc5824e5901329fd1ab1beb1a63443399a6a
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug