summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-08-26 20:54:00 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2008-08-26 20:54:00 +0000
commitcc6a1bd556913701daaa4e8f0c81a1bdd54d8f42 (patch)
tree6e9457242443e2677cd3d2738dcbaa62676976b8 /gui
parent2c2888ed98104590d41767a6293b674f9640240b (diff)
downloadgdm-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.c31
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));
}