diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index 2541ccda19..9f93a29025 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -1217,6 +1217,15 @@ populate_popup (GtkTextView *tv, add_item (tv, popup, "Underline", "underline", all_underline); } +static void +open_popover_text_changed (GtkEntry *entry, GParamSpec *pspec, GtkWidget *button) +{ + const gchar *text; + + text = gtk_entry_get_text (entry); + gtk_widget_set_sensitive (button, strlen (text) > 0); +} + static void activate (GApplication *app) { @@ -1424,6 +1433,13 @@ activate (GApplication *app) g_signal_connect (widget, "populate-popup", G_CALLBACK (populate_popup), NULL); + widget = (GtkWidget *)gtk_builder_get_object (builder, "open_popover"); + widget2 = (GtkWidget *)gtk_builder_get_object (builder, "open_popover_entry"); + widget3 = (GtkWidget *)gtk_builder_get_object (builder, "open_popover_button"); + gtk_popover_set_default_widget (GTK_POPOVER (widget), widget3); + g_signal_connect (widget2, "notify::text", G_CALLBACK (open_popover_text_changed), widget3); + g_signal_connect_swapped (widget3, "clicked", G_CALLBACK (gtk_widget_hide), widget); + 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 c9f6b440ae..31a110b42c 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -2893,9 +2893,10 @@ microphone-sensitivity-medium-symbolic start 6 - + True center + open_popover + + + 1 + 2 + + + + + vertical