diff options
author | Matthias Clasen <mclasen@redhat.com> | 2014-07-04 16:27:11 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-07-04 16:27:11 -0400 |
commit | 58f27de9274bb523ee3d318ca19f8442aef6aaf5 (patch) | |
tree | 6a13298261ba07d7559fee8e51070987090a6ad6 /demos/widget-factory | |
parent | 5e5ecbbf811bde57d7bacad4f0f0d50bfe51fbae (diff) | |
download | gtk+-58f27de9274bb523ee3d318ca19f8442aef6aaf5.tar.gz |
widget-factory: Unset needs-attention too
This is not done automatically, so unset needs-attention when
the page becomes current.
Diffstat (limited to 'demos/widget-factory')
-rw-r--r-- | demos/widget-factory/widget-factory.c | 36 | ||||
-rw-r--r-- | demos/widget-factory/widget-factory.ui | 2 |
2 files changed, 31 insertions, 7 deletions
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index 041b0b2401..121fb9f117 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -283,15 +283,24 @@ close_dialog (GtkWidget *dialog) gtk_widget_hide (dialog); } -static gboolean -demand_attention (gpointer page) +static void +set_needs_attention (GtkWidget *page, gboolean needs_attention) { GtkWidget *stack; stack = gtk_widget_get_parent (page); gtk_container_child_set (GTK_CONTAINER (stack), page, - "needs-attention", TRUE, + "needs-attention", needs_attention, NULL); +} + +static gboolean +demand_attention (gpointer stack) +{ + GtkWidget *page; + + page = gtk_stack_get_child_by_name (GTK_STACK (stack), "page3"); + set_needs_attention (page, TRUE); return G_SOURCE_REMOVE; } @@ -303,12 +312,26 @@ action_dialog_button_clicked (GtkButton *button, GtkWidget *page) } static void +page_changed_cb (GtkWidget *stack, GParamSpec *pspec, gpointer data) +{ + const gchar *name; + GtkWidget *page; + + name = gtk_stack_get_visible_child_name (GTK_STACK (stack)); + if (g_str_equal (name, "page3")) + { + page = gtk_stack_get_visible_child (GTK_STACK (stack)); + set_needs_attention (GTK_WIDGET (page), FALSE); + } +} + +static void activate (GApplication *app) { GtkBuilder *builder; GtkWindow *window; GtkWidget *widget; - GtkWidget *page; + GtkWidget *stack; GtkWidget *dialog; GtkAdjustment *adj; static GActionEntry win_entries[] = { @@ -377,8 +400,9 @@ activate (GApplication *app) g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog); widget = (GtkWidget *)gtk_builder_get_object (builder, "act_action_dialog"); - page = (GtkWidget *)gtk_builder_get_object (builder, "page3_content"); - g_signal_connect (widget, "clicked", G_CALLBACK (action_dialog_button_clicked), page); + stack = (GtkWidget *)gtk_builder_get_object (builder, "toplevel_stack"); + g_signal_connect (widget, "clicked", G_CALLBACK (action_dialog_button_clicked), stack); + g_signal_connect (stack, "notify::visible-child-name", G_CALLBACK (page_changed_cb), NULL); dialog = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog"); g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL); diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index 13a3d43b84..b0f19177b8 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -2727,7 +2727,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property> </packing> </child> <child> - <object class="GtkSpinner" id="page3_content"> + <object class="GtkSpinner"> <property name="visible">True</property> <property name="active">True</property> <property name="expand">True</property> |