From 3c9e3e1850f0690a02f351c4d8fac23bc5234cde Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 27 Nov 2013 19:04:14 +0100 Subject: [PATCH] fail-whale-dialog: Implement hfw size requests In case of the failure dialog, height-for-width size requests should not behave differently from regular size requests, so implement those methods to avoid falling back to GtkBin's implementation, which results in a mispositioned dialog. --- gnome-session/gsm-fail-whale-dialog.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnome-session/gsm-fail-whale-dialog.c b/gnome-session/gsm-fail-whale-dialog.c index f35be6a..0703f24 100644 --- a/gnome-session/gsm-fail-whale-dialog.c +++ b/gnome-session/gsm-fail-whale-dialog.c @@ -195,6 +195,19 @@ gsm_fail_whale_dialog_get_preferred_width (GtkWidget *widget, } static void +gsm_fail_whale_dialog_get_preferred_width_for_height (GtkWidget *widget, + gint for_height, + gint *minimal_width, + gint *natural_width) +{ + GtkRequisition requisition; + + gsm_fail_whale_dialog_size_request (widget, &requisition); + + *minimal_width = *natural_width = requisition.width; +} + +static void gsm_fail_whale_dialog_get_preferred_height (GtkWidget *widget, gint *minimal_height, gint *natural_height) @@ -207,6 +220,19 @@ gsm_fail_whale_dialog_get_preferred_height (GtkWidget *widget, } static void +gsm_fail_whale_dialog_get_preferred_height_for_width (GtkWidget *widget, + gint for_width, + gint *minimal_height, + gint *natural_height) +{ + GtkRequisition requisition; + + gsm_fail_whale_dialog_size_request (widget, &requisition); + + *minimal_height = *natural_height = requisition.height; +} + +static void gsm_fail_whale_dialog_class_init (GsmFailWhaleDialogClass *klass) { GtkWidgetClass *widget_class; @@ -217,6 +243,8 @@ gsm_fail_whale_dialog_class_init (GsmFailWhaleDialogClass *klass) widget_class->unrealize = gsm_fail_whale_dialog_unrealize; widget_class->get_preferred_width = gsm_fail_whale_dialog_get_preferred_width; widget_class->get_preferred_height = gsm_fail_whale_dialog_get_preferred_height; + widget_class->get_preferred_width_for_height = gsm_fail_whale_dialog_get_preferred_width_for_height; + widget_class->get_preferred_height_for_width = gsm_fail_whale_dialog_get_preferred_height_for_width; g_type_class_add_private (klass, sizeof (GsmFailWhaleDialogPrivate)); } -- 1.8.4.2