[libhandy/tabs: 2/62] sizing




commit 6651de9681e7d8e07543a3fcef901aeef55965a2
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Thu Sep 3 14:36:07 2020 +0500

    sizing

 src/hdy-css.c | 39 ++++++++++++++++++++++++---------------
 src/hdy-tab.c | 12 +++---------
 2 files changed, 27 insertions(+), 24 deletions(-)
---
diff --git a/src/hdy-css.c b/src/hdy-css.c
index 5d6e54de..920be551 100644
--- a/src/hdy-css.c
+++ b/src/hdy-css.c
@@ -17,7 +17,13 @@ hdy_css_measure (GtkWidget      *widget,
   GtkStyleContext *style_context = gtk_widget_get_style_context (widget);
   GtkStateFlags state_flags = gtk_widget_get_state_flags (widget);
   GtkBorder border, margin, padding;
-  gint css_width, css_height;
+  gint css_width, css_height, min = 0, nat = 0;
+
+  if (minimum)
+    min = *minimum;
+
+  if (natural)
+    nat = *natural;
 
   /* Manually apply minimum sizes, the border, the padding and the margin as we
    * can't use the private GtkGagdet.
@@ -30,23 +36,26 @@ hdy_css_measure (GtkWidget      *widget,
   gtk_style_context_get_margin (style_context, state_flags, &margin);
   gtk_style_context_get_padding (style_context, state_flags, &padding);
   if (orientation == GTK_ORIENTATION_VERTICAL) {
-    *minimum = MAX (*minimum, css_height) +
-               border.top + margin.top + padding.top +
-               border.bottom + margin.bottom + padding.bottom;
-    *natural = MAX (*natural, css_height) +
-               border.top + margin.top + padding.top +
-               border.bottom + margin.bottom + padding.bottom;
+      min = MAX (min, css_height) +
+            border.top + margin.top + padding.top +
+            border.bottom + margin.bottom + padding.bottom;
+      nat = MAX (nat, css_height) +
+            border.top + margin.top + padding.top +
+            border.bottom + margin.bottom + padding.bottom;
   } else {
-    *minimum = MAX (*minimum, css_width) +
-               border.left + margin.left + padding.left +
-               border.right + margin.right + padding.right;
-    *natural = MAX (*natural, css_width) +
-               border.left + margin.left + padding.left +
-               border.right + margin.right + padding.right;
+    min = MAX (min, css_width) +
+          border.left + margin.left + padding.left +
+          border.right + margin.right + padding.right;
+    nat = MAX (nat, css_width) +
+          border.left + margin.left + padding.left +
+          border.right + margin.right + padding.right;
   }
 
-  *minimum = MAX (*minimum, 0);
-  *natural = MAX (*natural, 0);
+  if (minimum)
+    *minimum = MAX (min, 0);
+
+  if (natural)
+    *natural = MAX (nat, 0);
 }
 
 void
diff --git a/src/hdy-tab.c b/src/hdy-tab.c
index 9f4fa2ec..41c0eef8 100644
--- a/src/hdy-tab.c
+++ b/src/hdy-tab.c
@@ -697,20 +697,14 @@ hdy_tab_get_child (HdyTab *self)
 gint
 hdy_tab_get_child_min_width (HdyTab *self)
 {
-  GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET (self));
-  GtkStateFlags flags = gtk_widget_get_state_flags (GTK_WIDGET (self));
-  gint min, css_width;
+  gint min = 0;
 
   if (self->child)
     gtk_widget_get_preferred_width (self->child, &min, NULL);
-  else
-    min = 0;
 
-  gtk_style_context_get (context, flags,
-                         "min-width", &css_width,
-                         NULL);
+  hdy_css_measure (GTK_WIDGET (self), GTK_ORIENTATION_HORIZONTAL, &min, NULL);
 
-  return MAX (min, css_width);
+  return min;
 }
 
 gint


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]