Changeset 271354 in webkit
- Timestamp:
- Jan 11, 2021, 12:43:55 AM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
UIProcess/API/glib/WebKitSettings.cpp (modified) (3 diffs)
-
UIProcess/API/glib/WebKitWebView.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r271333 r271354 1 2021-01-11 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] System font scaling not applied to 'font-size: XXXpt' 4 https://bugs.webkit.org/show_bug.cgi?id=218450 5 6 Reviewed by Žan Doberšek. 7 8 Apply the text scale factor as WebPageProxy text zoom factor, instead of changing the default font size in 9 settings that only applies to default fonts and it was incorrectly calculated. 10 11 * UIProcess/API/glib/WebKitSettings.cpp: 12 (webKitSettingsDispose): 13 (webKitSettingsConstructed): 14 * UIProcess/API/glib/WebKitWebView.cpp: 15 (webkitWebViewConstructed): 16 (webkitWebViewDispose): 17 (webkit_web_view_set_zoom_level): 18 (webkit_web_view_get_zoom_level): 19 1 20 2021-01-08 Commit Queue <commit-queue@webkit.org> 2 21 -
trunk/Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp
r269723 r271354 83 83 bool allowModalDialogs { false }; 84 84 bool zoomTextOnly { false }; 85 double screenDpi { 96 };86 85 #if PLATFORM(GTK) 87 86 bool enableBackForwardNavigationGestures { false }; … … 178 177 static void webKitSettingsDispose(GObject* object) 179 178 { 180 WebCore::setScreenDPIObserverHandler(nullptr, object);181 179 G_OBJECT_CLASS(webkit_settings_parent_class)->dispose(object); 182 180 } … … 193 191 prefs->setMediaDevicesEnabled(mediaStreamEnabled); 194 192 prefs->setPeerConnectionEnabled(mediaStreamEnabled); 195 196 settings->priv->screenDpi = WebCore::screenDPI();197 WebCore::setScreenDPIObserverHandler([settings]() {198 auto newScreenDpi = WebCore::screenDPI();199 if (newScreenDpi == settings->priv->screenDpi)200 return;201 202 auto scalingFactor = newScreenDpi / settings->priv->screenDpi;203 auto fontSize = settings->priv->preferences->defaultFontSize();204 auto monospaceFontSize = settings->priv->preferences->defaultFixedFontSize();205 settings->priv->screenDpi = newScreenDpi;206 207 g_object_freeze_notify(G_OBJECT(settings));208 webkit_settings_set_default_font_size(settings, std::round(fontSize * scalingFactor));209 webkit_settings_set_default_monospace_font_size(settings, std::round(monospaceFontSize * scalingFactor));210 g_object_thaw_notify(G_OBJECT(settings));211 }, object);212 193 } 213 194 -
trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp
r271162 r271354 74 74 #include <WebCore/GUniquePtrSoup.h> 75 75 #include <WebCore/JSDOMExceptionHandling.h> 76 #include <WebCore/PlatformScreen.h> 76 77 #include <WebCore/RefPtrCairo.h> 77 78 #include <WebCore/URLSoup.h> … … 307 308 GRefPtr<WebKitWebsiteDataManager> websiteDataManager; 308 309 GRefPtr<WebKitWebsitePolicies> websitePolicies; 310 311 double textScaleFactor; 309 312 }; 310 313 … … 797 800 priv->backForwardList = adoptGRef(webkitBackForwardListCreate(&getPage(webView).backForwardList())); 798 801 priv->windowProperties = adoptGRef(webkitWindowPropertiesCreate()); 802 803 priv->textScaleFactor = WebCore::screenDPI() / 96.; 804 getPage(webView).setTextZoomFactor(priv->textScaleFactor); 805 WebCore::setScreenDPIObserverHandler([webView] { 806 auto& page = getPage(webView); 807 auto zoomFactor = page.textZoomFactor() / webView->priv->textScaleFactor; 808 webView->priv->textScaleFactor = WebCore::screenDPI() / 96.; 809 page.setTextZoomFactor(zoomFactor * webView->priv->textScaleFactor); 810 }, webView); 799 811 } 800 812 … … 955 967 #endif 956 968 969 WebCore::setScreenDPIObserverHandler(nullptr, webView); 970 957 971 G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object); 958 972 } … … 3604 3618 auto& page = getPage(webView); 3605 3619 if (webkit_settings_get_zoom_text_only(webView->priv->settings.get())) 3606 page.setTextZoomFactor(zoomLevel );3620 page.setTextZoomFactor(zoomLevel * webView->priv->textScaleFactor); 3607 3621 else 3608 3622 page.setPageZoomFactor(zoomLevel); … … 3625 3639 auto& page = getPage(webView); 3626 3640 gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webView->priv->settings.get()); 3627 return zoomTextOnly ? page.textZoomFactor() : page.pageZoomFactor();3641 return zoomTextOnly ? page.textZoomFactor() / webView->priv->textScaleFactor : page.pageZoomFactor(); 3628 3642 } 3629 3643
Note:
See TracChangeset
for help on using the changeset viewer.