[Webkit-unassigned] [Bug 142673] [GTK] Automatically adjust font size when gtk-xft-dpi changes

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 14 01:51:03 PST 2017


https://bugs.webkit.org/show_bug.cgi?id=142673

--- Comment #59 from Gabriel Ivașcu <givascu at igalia.com> ---
(In reply to Carlos Garcia Campos from comment #58)
> > Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:164
> > +    WebCore::setScreenDPIObserverHandler(nullptr);
> 
> This doesn't work, because there can be multiple instances of
> WebKitSettings, it's the way we make web view groups, by sharing
> WebKitSettings objects. In this case, once one instance is deleted, all
> others will stop receiving notifications. We should either change
> PlatformScreen to receive a pair of Function, context and keep a map, or use
> a single handler here but notify all WebKitSetting instances. The former
> should be easier.

What do you mean by context? The WebKitSettings object itself?

> > Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:190
> > +        auto prevFontSize = settings->priv->preferences->defaultFontSize();
> > +        auto prevMonospaceFontSize = settings->priv->preferences->defaultFixedFontSize();
> > +
> > +        settings->priv->preferences->setDefaultFontSize(std::round(prevFontSize * scalingFactor));
> > +        g_object_notify(G_OBJECT(settings), "default-font-size");
> > +
> > +        settings->priv->preferences->setDefaultFixedFontSize(std::round(prevMonospaceFontSize * scalingFactor));
> > +        g_object_notify(G_OBJECT(settings), "default-monospace-font-size");
> 
> This is already done by webkit_settings_set_default_font_size() and
> webkit_settings_set_default_monospace_font_size(), so I would use those
> instead. I would also use g_object_freeze_notify()/thaw_notify().

Why would we need to freeze/thaw the notify signals if we're going to replace the manual set and notify with the setter function? Do we want to emit the signals only after both font sizes were set?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20171114/08644df7/attachment.html>


More information about the webkit-unassigned mailing list