summaryrefslogtreecommitdiff
path: root/gtk/gtkwindow.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-09-13 17:04:19 -0400
committerMatthias Clasen <mclasen@redhat.com>2022-09-14 00:08:36 -0400
commit5bbe811090d11840bbd65f46b6f5100b3079ac97 (patch)
tree317ac1036a5efce27afe696b5ddc35a023edb7b8 /gtk/gtkwindow.c
parent952f85c12de13e978294af58f26694eddb3a1ee0 (diff)
downloadgtk+-wip/css-value-unboxing.tar.gz
wip: Unbox css valueswip/css-value-unboxing
Keep css values unboxed in the values structs, for faster access to these values, where it makes sense.
Diffstat (limited to 'gtk/gtkwindow.c')
-rw-r--r--gtk/gtkwindow.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index efd1cff6f0..f9bb413337 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1340,25 +1340,23 @@ constraints_for_edge (GdkSurfaceEdge edge)
}
}
-static int
-get_number (GtkCssValue *value)
+static inline int
+ceil_or_floor (float d)
{
- double d = _gtk_css_number_value_get (value, 100);
-
if (d < 1)
- return ceil (d);
+ return ceilf (d);
else
- return floor (d);
+ return floorf (d);
}
-static void
+static inline void
get_box_border (GtkCssStyle *style,
GtkBorder *border)
{
- border->top = get_number (style->border->border_top_width) + get_number (style->size->padding_top);
- border->left = get_number (style->border->border_left_width) + get_number (style->size->padding_left);
- border->bottom = get_number (style->border->border_bottom_width) + get_number (style->size->padding_bottom);
- border->right = get_number (style->border->border_right_width) + get_number (style->size->padding_right);
+ border->top = ceil_or_floor (style->border->_border_width[GTK_CSS_TOP]) + ceil_or_floor (style->size->_padding[GTK_CSS_TOP]);
+ border->right = ceil_or_floor (style->border->_border_width[GTK_CSS_RIGHT]) + ceil_or_floor (style->size->_padding[GTK_CSS_RIGHT]);
+ border->bottom = ceil_or_floor (style->border->_border_width[GTK_CSS_BOTTOM]) + ceil_or_floor (style->size->_padding[GTK_CSS_BOTTOM]);
+ border->left = ceil_or_floor (style->border->_border_width[GTK_CSS_LEFT]) + ceil_or_floor (style->size->_padding[GTK_CSS_LEFT]);
}
static int