[gtk+] widget-factory: Fix smooth autoscrolling of scales



commit f7c87fb3b78863d258092ea4cf57dd6c4480d02d
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Aug 24 12:53:28 2016 -0400

    widget-factory: Fix smooth autoscrolling of scales
    
    There is annoying interference between formatting the value
    (for which we set the number of digits to show) and the small
    frame-to-frame value changes that we do for autoscrolling.
    
    To work around this, turn off the digits-based rounding entirely
    and format the value ourselves with ::format-value.

 demos/widget-factory/widget-factory.c  |    9 ++++++++-
 demos/widget-factory/widget-factory.ui |    5 ++++-
 2 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index d4b88a5..3fde995 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -1626,11 +1626,17 @@ reset_icon_size (GtkWidget *iv)
 }
 
 static gchar *
-scale_format_value (GtkScale *scale, gdouble value)
+scale_format_value_blank (GtkScale *scale, gdouble value)
 {
   return g_strdup (" ");
 }
 
+static gchar *
+scale_format_value (GtkScale *scale, gdouble value)
+{
+  return g_strdup_printf ("%0.*f", 1, value);
+}
+
 static void
 activate (GApplication *app)
 {
@@ -1697,6 +1703,7 @@ activate (GApplication *app)
   gtk_builder_add_callback_symbol (builder, "decrease_icon_size", (GCallback)decrease_icon_size);
   gtk_builder_add_callback_symbol (builder, "reset_icon_size", (GCallback)reset_icon_size);
   gtk_builder_add_callback_symbol (builder, "scale_format_value", (GCallback)scale_format_value);
+  gtk_builder_add_callback_symbol (builder, "scale_format_value_blank", (GCallback)scale_format_value_blank);
 
   gtk_builder_connect_signals (builder, NULL);
 
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index a03975d..ee025da 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -1242,6 +1242,8 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
                                     <property name="restrict_to_fill_level">0</property>
                                     <property name="fill_level">75</property>
                                     <property name="draw_value">1</property>
+                                    <property name="digits">-1</property>
+                                    <signal name="format-value" handler="scale_format_value"/>
                                   </object>
                                 </child>
                                 <child>
@@ -1255,7 +1257,8 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
                                     <property name="restrict_to_fill_level">0</property>
                                     <property name="fill_level">75</property>
                                     <property name="draw_value">1</property>
-                                    <signal name="format-value" handler="scale_format_value"/>
+                                    <property name="digits">-1</property>
+                                    <signal name="format-value" handler="scale_format_value_blank"/>
                                   </object>
                                   <packing>
                                     <property name="position">1</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]