From a8ed0dd4eef87dfeaa0263c115c35d74ed8019bc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 15 Aug 2014 14:57:31 -0400 Subject: [PATCH] GtkFontChooserWidget: Allow fractional font sizes With this change, we let users enter up to 2 decimals in the entry, to specify font sizes exactly. The slider still rounds to whole numbers. https://bugzilla.gnome.org/show_bug.cgi?id=665711 --- gtk/gtkfontchooserwidget.c | 18 ++++++++++++++++++ gtk/resources/ui/gtkfontchooserwidget.ui | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index 1edd2cd896..e7d347d7c5 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -262,6 +262,23 @@ size_change_cb (GtkAdjustment *adjustment, gtk_font_chooser_widget_take_font_desc (fontchooser, font_desc); } +static gboolean +output_cb (GtkSpinButton *spin, + gpointer data) +{ + GtkAdjustment *adjustment; + gchar *text; + gdouble value; + + adjustment = gtk_spin_button_get_adjustment (spin); + value = gtk_adjustment_get_value (adjustment); + text = g_strdup_printf ("%2.4g", value); + gtk_entry_set_text (GTK_ENTRY (spin), text); + g_free (text); + + return TRUE; +} + static void gtk_font_chooser_widget_update_marks (GtkFontChooserWidget *fontchooser) { @@ -516,6 +533,7 @@ gtk_font_chooser_widget_class_init (GtkFontChooserWidgetClass *klass) gtk_widget_class_bind_template_callback (widget_class, row_inserted_cb); gtk_widget_class_bind_template_callback (widget_class, row_deleted_cb); gtk_widget_class_bind_template_callback (widget_class, size_change_cb); + gtk_widget_class_bind_template_callback (widget_class, output_cb); } static void diff --git a/gtk/resources/ui/gtkfontchooserwidget.ui b/gtk/resources/ui/gtkfontchooserwidget.ui index c12bdab604..c2c599dc91 100644 --- a/gtk/resources/ui/gtkfontchooserwidget.ui +++ b/gtk/resources/ui/gtkfontchooserwidget.ui @@ -155,8 +155,8 @@ True True slider_adjustment - 0 False + 0 @@ -172,6 +172,7 @@ True spin_adjustment + 1