[libhandy/tabs: 2/62] sizing
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libhandy/tabs: 2/62] sizing
- Date: Sat, 12 Sep 2020 19:27:42 +0000 (UTC)
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]