summaryrefslogtreecommitdiff
path: root/gui/simple-greeter/gdm-clock-widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'gui/simple-greeter/gdm-clock-widget.c')
-rw-r--r--gui/simple-greeter/gdm-clock-widget.c34
1 files changed, 27 insertions, 7 deletions
diff --git a/gui/simple-greeter/gdm-clock-widget.c b/gui/simple-greeter/gdm-clock-widget.c
index 7b09c128..68c6da08 100644
--- a/gui/simple-greeter/gdm-clock-widget.c
+++ b/gui/simple-greeter/gdm-clock-widget.c
@@ -196,18 +196,31 @@ remove_timeout (GdmClockWidget *clock)
}
static void
-gdm_clock_widget_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
+gdm_clock_widget_get_preferred_width (GtkWidget *widget,
+ gint *minimum_size,
+ gint *natural_size)
+{
+ if (GTK_WIDGET_CLASS (gdm_clock_widget_parent_class)->get_preferred_width) {
+ GTK_WIDGET_CLASS (gdm_clock_widget_parent_class)->get_preferred_width (widget, minimum_size, natural_size);
+ }
+
+}
+
+static void
+gdm_clock_widget_get_preferred_height (GtkWidget *widget,
+ gint *minimum_size,
+ gint *natural_size)
{
PangoFontMetrics *metrics;
PangoContext *context;
int ascent;
int descent;
int padding;
+ int min_size;
+ int nat_size;
- if (GTK_WIDGET_CLASS (gdm_clock_widget_parent_class)->size_request) {
- GTK_WIDGET_CLASS (gdm_clock_widget_parent_class)->size_request (widget, requisition);
- }
+ min_size = 0;
+ nat_size = 0;
gtk_widget_ensure_style (widget);
context = gtk_widget_get_pango_context (widget);
@@ -218,7 +231,13 @@ gdm_clock_widget_size_request (GtkWidget *widget,
ascent = pango_font_metrics_get_ascent (metrics);
descent = pango_font_metrics_get_descent (metrics);
padding = PANGO_PIXELS (ascent + descent) / 2.0;
- requisition->height += padding;
+ min_size += padding;
+ nat_size += padding;
+
+ if (minimum_size)
+ *minimum_size = min_size;
+ if (natural_size)
+ *natural_size = nat_size;
pango_font_metrics_unref (metrics);
}
@@ -233,7 +252,8 @@ gdm_clock_widget_class_init (GdmClockWidgetClass *klass)
widget_class = GTK_WIDGET_CLASS (klass);
object_class->finalize = gdm_clock_widget_finalize;
- widget_class->size_request = gdm_clock_widget_size_request;
+ widget_class->get_preferred_width = gdm_clock_widget_get_preferred_width;
+ widget_class->get_preferred_height = gdm_clock_widget_get_preferred_height;
g_type_class_add_private (klass, sizeof (GdmClockWidgetPrivate));
}