Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Wed, 07 Sep 2016 09:05:17 UTC Commit: db6f671135511bd107d18d512270503047eb19ac https://github.com/geany/geany/commit/db6f671135511bd107d18d512270503047eb19...
Log Message: ----------- GTK: Fix autoc font size on GTK >= 3.21.0
GTK 3.21.0 fixed font size handling, leading to properly interpreting pixels and points in CSS declarations. However, as older versions incorrectly handled those, the code has to handle both behaviours.
From CSS, GTK < 3.21.0 actually applied the conversion to points, but
incorrectly: 10px was used as 10pt, but 10pt was scaled up twice.
So, assuming 96 DPI, it leads to:
font-size | 3.20.0 | 3.21.0 | ----------|---------|---------| 10px | 13.33px | 10px | 10pt | 17.77px | 13.33px |
So, we need to fix the code to accommodate for both (either scaling ourselves, or adapting the unit: I chose the second, simpler, option).
See https://git.gnome.org/browse/gtk+/commit/?id=df08fc91bdc1d2e4c866122304fabe4...
X-Scintilla-Bug-URL: https://sourceforge.net/p/scintilla/bugs/1859/ X-Scintilla-Commit-ID: a4b5da8b3a0a05a1e67ba7eb08474106d421b088
Modified Paths: -------------- scintilla/gtk/PlatGTK.cxx
Modified: scintilla/gtk/PlatGTK.cxx 10 lines changed, 9 insertions(+), 1 deletions(-) =================================================================== @@ -1494,7 +1494,15 @@ void ListBoxX::SetFont(Font &scint_font) { ssFontSetting << "font-family: " << pango_font_description_get_family(pfd) << "; "; ssFontSetting << "font-size:"; ssFontSetting << static_cast<double>(pango_font_description_get_size(pfd)) / PANGO_SCALE; - ssFontSetting << "px; "; + // On GTK < 3.21.0 the units are incorrectly parsed, so a font size in points + // need to use the "px" unit. Normally we only get fonts in points here, so + // don't bother to handle the case the font is actually in pixels on < 3.21.0. + if (gtk_check_version(3, 21, 0) != NULL || // on < 3.21.0 + pango_font_description_get_size_is_absolute(pfd)) { + ssFontSetting << "px; "; + } else { + ssFontSetting << "pt; "; + } ssFontSetting << "font-weight:"<< pango_font_description_get_weight(pfd) << "; "; ssFontSetting << "}"; gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(cssProvider),
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).