From 3c9e3e1850f0690a02f351c4d8fac23bc5234cde Mon Sep 17 00:00:00 2001
From: Benjamin Otte <otte@redhat.com>
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