I suggest something like this ```diff diff --git a/src/sciwrappers.c b/src/sciwrappers.c index 647c44454..5dc59b93e 100644 --- a/src/sciwrappers.c +++ b/src/sciwrappers.c @@ -968,9 +968,9 @@ void sci_set_font(ScintillaObject *sci, gint style, const gchar *font, gint size }
-gint sci_get_fontsize(ScintillaObject *sci, gint style) +gdouble sci_get_font_size(ScintillaObject *sci, gint style) { - return (gint) SSM(sci, SCI_STYLEGETSIZE, (uptr_t) style, 0); + return SSM(sci, SCI_STYLEGETSIZEFRACTIONAL, (uptr_t) style, 0) / (gdouble) SC_FONT_SIZE_MULTIPLIER; }
diff --git a/src/sciwrappers.h b/src/sciwrappers.h index fca3efa65..fa2a88a29 100644 --- a/src/sciwrappers.h +++ b/src/sciwrappers.h @@ -219,7 +219,7 @@ void sci_move_selected_lines_up (ScintillaObject *sci);
void sci_set_font_fractional (ScintillaObject *sci, gint style, const gchar *font, gdouble size);
-gint sci_get_fontsize (ScintillaObject *sci, gint style); +gdouble sci_get_font_size (ScintillaObject *sci, gint style);
#endif /* GEANY_PRIVATE */
diff --git a/src/ui_utils.c b/src/ui_utils.c index 644259bec..5f3ad4abf 100644 --- a/src/ui_utils.c +++ b/src/ui_utils.c @@ -309,13 +309,13 @@ static gchar *create_statusbar_statistics(GeanyDocument *doc, zoom = sci_get_zoom(doc->editor->sci); if (zoom != 0) { - gint size, percent; + gdouble size, percent;
- size = sci_get_fontsize(doc->editor->sci, STYLE_DEFAULT); - if (size > 0) + size = sci_get_font_size(doc->editor->sci, STYLE_DEFAULT); + if (size > 0.0) { percent = (size + zoom) * 100 / size; - g_string_append_printf(stats_str, _("Zoom: %d%%"), percent); + g_string_append_printf(stats_str, _("Zoom: %.0f%%"), percent); g_string_append(stats_str, sp); } } ```