diff options
author | William Jon McCann <jmccann@redhat.com> | 2008-08-26 20:54:00 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2008-08-26 20:54:00 +0000 |
commit | cc6a1bd556913701daaa4e8f0c81a1bdd54d8f42 (patch) | |
tree | 6e9457242443e2677cd3d2738dcbaa62676976b8 /gui | |
parent | 2c2888ed98104590d41767a6293b674f9640240b (diff) | |
download | gdm-cc6a1bd556913701daaa4e8f0c81a1bdd54d8f42.tar.gz |
Request padding so that panel doesn't change size when comboboxes or
2008-08-26 William Jon McCann <jmccann@redhat.com>
* gui/simple-greeter/gdm-clock-widget.c
(gdm_clock_widget_size_request), (gdm_clock_widget_class_init):
Request padding so that panel doesn't change size when
comboboxes or buttons are added. Somewhat arbitrary but
it seems to work for now.
svn path=/trunk/; revision=6441
Diffstat (limited to 'gui')
-rw-r--r-- | gui/simple-greeter/gdm-clock-widget.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gui/simple-greeter/gdm-clock-widget.c b/gui/simple-greeter/gdm-clock-widget.c index f8b1fb86..a3816d23 100644 --- a/gui/simple-greeter/gdm-clock-widget.c +++ b/gui/simple-greeter/gdm-clock-widget.c @@ -160,13 +160,44 @@ remove_timeout (GdmClockWidget *clock) } static void +gdm_clock_widget_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + PangoFontMetrics *metrics; + PangoContext *context; + int ascent; + int descent; + int padding; + + if (GTK_WIDGET_CLASS (gdm_clock_widget_parent_class)->size_request) { + GTK_WIDGET_CLASS (gdm_clock_widget_parent_class)->size_request (widget, requisition); + } + + gtk_widget_ensure_style (widget); + context = gtk_widget_get_pango_context (widget); + metrics = pango_context_get_metrics (context, + widget->style->font_desc, + pango_context_get_language (context)); + + ascent = pango_font_metrics_get_ascent (metrics); + descent = pango_font_metrics_get_descent (metrics); + padding = PANGO_PIXELS (ascent + descent) / 2.0; + requisition->height += padding; + + pango_font_metrics_unref (metrics); +} + +static void gdm_clock_widget_class_init (GdmClockWidgetClass *klass) { GObjectClass *object_class; + GtkWidgetClass *widget_class; object_class = G_OBJECT_CLASS (klass); + widget_class = GTK_WIDGET_CLASS (klass); object_class->finalize = gdm_clock_widget_finalize; + widget_class->size_request = gdm_clock_widget_size_request; g_type_class_add_private (klass, sizeof (GdmClockWidgetPrivate)); } |