diff options
author | Andrew P. <pan.pav.7c5@gmail.com> | 2015-05-06 10:11:40 +0300 |
---|---|---|
committer | Andrew P. <pan.pav.7c5@gmail.com> | 2015-05-06 10:11:40 +0300 |
commit | 4446d4cb6fa78617b8a1b74c4cb1b3cc9f166add (patch) | |
tree | fcea6f4ba9bc5ad8a6702fb8f3db9a705f802033 | |
parent | ff80afa6cc7cd933ab1646cd4cd5aed48668dcfe (diff) | |
download | lightdm-gtk-greeter-git-4446d4cb6fa78617b8a1b74c4cb1b3cc9f166add.tar.gz |
GTK #710888: GtkInfoBar can remains hidden after show()
-rw-r--r-- | src/lightdm-gtk-greeter.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lightdm-gtk-greeter.c b/src/lightdm-gtk-greeter.c index 98dd246..55dbfae 100644 --- a/src/lightdm-gtk-greeter.c +++ b/src/lightdm-gtk-greeter.c @@ -345,6 +345,12 @@ greeter_restore_focus(const gpointer saved_data) gtk_editable_set_position(GTK_EDITABLE(data->widget), data->editable_pos); } +static void +infobar_revealed_cb_710888 (GObject *gobject, GParamSpec *pspec, gpointer user_data) +{ + gtk_widget_set_visible (GTK_WIDGET (info_bar), !message_label_is_empty ()); +} + /* Terminating */ static GPid @@ -2763,6 +2769,17 @@ main (int argc, char **argv) init_indicators (); + /* https://bugzilla.gnome.org/show_bug.cgi?id=710888 + > GtkInfoBar not shown after calling gtk_widget_show + Assume they will fix it someday. */ + if (gtk_get_major_version () == 3 && gtk_get_minor_version () < 18) + { + GList *children = gtk_container_get_children (GTK_CONTAINER (info_bar)); + if (g_list_length (children) == 1 && GTK_IS_REVEALER (children->data)) + g_signal_connect_after(children->data, "notify::child-revealed", (GCallback)infobar_revealed_cb_710888, NULL); + g_list_free (children); + } + /* Hide empty panel */ GList *menubar_items = gtk_container_get_children (GTK_CONTAINER (menubar)); if (!menubar_items) |