diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index 1584c134eb..287240254c 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -1637,6 +1637,16 @@ scale_format_value (GtkScale *scale, gdouble value)
return g_strdup_printf ("%0.*f", 1, value);
}
+static void
+adjustment3_value_changed (GtkAdjustment *adj, GtkProgressBar *pbar)
+{
+ double fraction;
+
+ fraction = gtk_adjustment_get_value (adj) / (gtk_adjustment_get_upper (adj) - gtk_adjustment_get_lower (adj));
+
+ gtk_progress_bar_set_fraction (pbar, fraction);
+}
+
static void
activate (GApplication *app)
{
@@ -1910,6 +1920,12 @@ activate (GApplication *app)
widget2 = (GtkWidget *)gtk_builder_get_object (builder, "decrease_button");
g_object_set_data (G_OBJECT (widget), "decrease_button", widget2);
+ adj = (GtkAdjustment *)gtk_builder_get_object (builder, "adjustment3");
+ widget = (GtkWidget *)gtk_builder_get_object (builder, "progressbar1");
+ widget2 = (GtkWidget *)gtk_builder_get_object (builder, "progressbar2");
+ g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment3_value_changed), widget);
+ g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment3_value_changed), widget2);
+
gtk_widget_show_all (GTK_WIDGET (window));
g_object_unref (builder);
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index f540cffd29..300ecf6c71 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -103,8 +103,9 @@
10