From 0b7aa5091e725c9faa1cfbeb6ddfc167665828e6 Mon Sep 17 00:00:00 2001 From: Claudio Saavedra Date: Fri, 29 May 2009 15:28:28 +0200 Subject: [PATCH] Properly center HildonBanner contents * hildon/hildon-banner-private.h: Add a GtkAlignment to the private structure. * hildon/hildon-banner.c (hildon_banner_init): Use a GtkAlignment to ensure the banner contents are centered, instead of relying on the expand and fill properties in GtkHBox. (hildon_banner_ensure_child): Do not expand nor fill the child widget. Fixes: NB#108265 (Animation banner not properly centered) --- ChangeLog | 11 +++++++++++ hildon/hildon-banner-private.h | 1 + hildon/hildon-banner.c | 8 +++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 913183c..336dae2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-05-29 Claudio Saavedra + + * hildon/hildon-banner-private.h: Add a GtkAlignment to the private + structure. + * hildon/hildon-banner.c (hildon_banner_init): Use a GtkAlignment + to ensure the banner contents are centered, instead of relying on + the expand and fill properties in GtkHBox. + (hildon_banner_ensure_child): Do not expand nor fill the child widget. + + Fixes: NB#108265 (Animation banner not properly centered) + 2009-05-28 Alejandro Pinheiro * hildon/hildon-pannable-area.c diff --git a/hildon/hildon-banner-private.h b/hildon/hildon-banner-private.h index 925d807..2eb2e07 100644 --- a/hildon/hildon-banner-private.h +++ b/hildon/hildon-banner-private.h @@ -36,6 +36,7 @@ typedef struct _HildonBannerPrivate HildonBanne struct _HildonBannerPrivate { GtkWidget *main_item; + GtkWidget *alignment; GtkWidget *label; GtkWidget *layout; guint timeout_id; diff --git a/hildon/hildon-banner.c b/hildon/hildon-banner.c index 2feff87..e263097 100644 --- a/hildon/hildon-banner.c +++ b/hildon/hildon-banner.c @@ -814,6 +814,7 @@ hildon_banner_init (HildonBanner *self) priv->require_override_dnd = FALSE; /* Initialize the common layout inside banner */ + priv->alignment = gtk_alignment_new (0.5, 0.5, 0, 0); priv->layout = gtk_hbox_new (FALSE, HILDON_MARGIN_DEFAULT); priv->label = g_object_new (GTK_TYPE_LABEL, NULL); @@ -821,8 +822,9 @@ hildon_banner_init (HildonBanner *self) gtk_label_set_line_wrap_mode (GTK_LABEL (priv->label), PANGO_WRAP_WORD_CHAR); gtk_container_set_border_width (GTK_CONTAINER (priv->layout), HILDON_MARGIN_DEFAULT); - gtk_container_add (GTK_CONTAINER (self), priv->layout); - gtk_box_pack_start (GTK_BOX (priv->layout), priv->label, TRUE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (self), priv->alignment); + gtk_container_add (GTK_CONTAINER (priv->alignment), priv->layout); + gtk_box_pack_start (GTK_BOX (priv->layout), priv->label, FALSE, FALSE, 0); gtk_window_set_accept_focus (GTK_WINDOW (self), FALSE); @@ -865,7 +867,7 @@ hildon_banner_ensure_child (HildonBanner *self, /* Use user provided widget or create a new one */ priv->main_item = widget = user_widget ? user_widget : GTK_WIDGET (g_object_new_valist(type, first_property, args)); - gtk_box_pack_start (GTK_BOX (priv->layout), widget, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (priv->layout), widget, FALSE, FALSE, 0); } /* We make sure that the widget exists in desired position. Different -- 1.7.9.5