summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Davis <smd.seandavis@gmail.com>2015-05-13 07:22:28 -0400
committerSean Davis <smd.seandavis@gmail.com>2015-05-13 07:22:28 -0400
commit1024b78a6c1e61414db6ece3d3ded0e68d5edd7e (patch)
tree692caef4232e32befcdec373de3bedac77261857
parent66456d9116981fe641e678607269e42f009a3c5f (diff)
parent4446d4cb6fa78617b8a1b74c4cb1b3cc9f166add (diff)
downloadlightdm-gtk-greeter-git-1024b78a6c1e61414db6ece3d3ded0e68d5edd7e.tar.gz
Merge lp:~kalgasnik/lightdm-gtk-greeter/gtk-710888-GtkInfoBar-visibility into lp:lightdm-gtk-greeter
-rw-r--r--src/lightdm-gtk-greeter.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lightdm-gtk-greeter.c b/src/lightdm-gtk-greeter.c
index d993fbd..9b2e6c6 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
@@ -2790,6 +2796,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)