[gtk+] sizerequest: Fix for_size adjustment
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] sizerequest: Fix for_size adjustment
- Date: Wed, 17 Jan 2018 20:54:52 +0000 (UTC)
commit e7b3909fd13e441d29fca0ff866abdd31bb87b2c
Author: Timm Bäder <mail baedert org>
Date: Wed Jan 17 15:42:01 2018 +0100
sizerequest: Fix for_size adjustment
We need to pull the proper size from the size request cache and adjust
it accordingly.
gtk/gtksizerequest.c | 30 +++++++++++++-----------------
1 files changed, 13 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtksizerequest.c b/gtk/gtksizerequest.c
index 3838e5c..2b8ec8f 100644
--- a/gtk/gtksizerequest.c
+++ b/gtk/gtksizerequest.c
@@ -154,7 +154,6 @@ gtk_widget_query_size_for_orientation (GtkWidget *widget,
if (!found_in_cache)
{
int adjusted_min, adjusted_natural;
- int adjusted_for_size = for_size;
int reported_min_size = 0;
int reported_nat_size = 0;
@@ -188,29 +187,26 @@ gtk_widget_query_size_for_orientation (GtkWidget *widget,
}
else
{
- int dummy = 0;
+ int adjusted_for_size;
int minimum_for_size = 0;
int natural_for_size = 0;
+ int dummy = 0;
- /* Pull the base natural size from the cache as it's needed to adjust
+ /* Pull the minimum for_size from the cache as it's needed to adjust
* the proposed 'for_size' */
- widget_class->measure (widget, OPPOSITE_ORIENTATION (orientation), -1,
- &minimum_for_size, &natural_for_size, &dummy, &dummy);
-
- gtk_widget_adjust_size_allocation (widget,
- OPPOSITE_ORIENTATION (orientation),
- &minimum_for_size,
- &natural_for_size,
- &dummy,
- &adjusted_for_size);
-
- /* adjusted_for_size now without widget margins */
- adjusted_for_size -= css_extra_for_size;
+ gtk_widget_measure (widget, OPPOSITE_ORIENTATION (orientation), -1,
+ &minimum_for_size, &natural_for_size, NULL, NULL);
/* TODO: Warn if the given for_size is too small? */
+ if (for_size < MAX (minimum_for_size, css_min_for_size))
+ for_size = MAX (minimum_for_size, css_min_for_size);
+
+ adjusted_for_size = for_size;
+ gtk_widget_adjust_size_allocation (widget, OPPOSITE_ORIENTATION (orientation),
+ &for_size, &natural_for_size,
+ &dummy, &adjusted_for_size);
- if (adjusted_for_size < MAX (minimum_for_size, css_min_for_size))
- adjusted_for_size = MAX (minimum_for_size, css_min_for_size);
+ adjusted_for_size -= css_extra_for_size;
push_recursion_check (widget, orientation);
widget_class->measure (widget,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]