diff --git a/src/st/st-border-image.c b/src/st/st-border-image.c index c55ee9b20..a462bfd5c 100644 --- a/src/st/st-border-image.c +++ b/src/st/st-border-image.c @@ -32,6 +32,8 @@ struct _StBorderImage { int border_right; int border_bottom; int border_left; + + int scale_factor; }; struct _StBorderImageClass { @@ -69,7 +71,8 @@ st_border_image_new (const char *filename, int border_top, int border_right, int border_bottom, - int border_left) + int border_left, + int scale_factor) { StBorderImage *image; @@ -80,6 +83,7 @@ st_border_image_new (const char *filename, image->border_right = border_right; image->border_bottom = border_bottom; image->border_left = border_left; + image->scale_factor = scale_factor; return image; } @@ -102,13 +106,13 @@ st_border_image_get_borders (StBorderImage *image, g_return_if_fail (ST_IS_BORDER_IMAGE (image)); if (border_top) - *border_top = image->border_top; + *border_top = image->border_top * image->scale_factor; if (border_right) - *border_right = image->border_right; + *border_right = image->border_right * image->scale_factor; if (border_bottom) - *border_bottom = image->border_bottom; + *border_bottom = image->border_bottom * image->scale_factor; if (border_left) - *border_left = image->border_left; + *border_left = image->border_left * image->scale_factor; } /** diff --git a/src/st/st-border-image.h b/src/st/st-border-image.h index f0941602e..9b284d611 100644 --- a/src/st/st-border-image.h +++ b/src/st/st-border-image.h @@ -43,7 +43,8 @@ StBorderImage *st_border_image_new (const char *filename, int border_top, int border_right, int border_bottom, - int border_left); + int border_left, + int scale_factor); const char *st_border_image_get_filename (StBorderImage *image); void st_border_image_get_borders (StBorderImage *image, diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c index 68aea1728..16f247a3a 100644 --- a/src/st/st-theme-node.c +++ b/src/st/st-theme-node.c @@ -2864,6 +2864,7 @@ StBorderImage * st_theme_node_get_border_image (StThemeNode *node) { int i; + int scale_factor; if (node->border_image_computed) return node->border_image; @@ -2872,6 +2873,7 @@ st_theme_node_get_border_image (StThemeNode *node) node->border_image_computed = TRUE; ensure_properties (node); + g_object_get (node->context, "scale-factor", &scale_factor, NULL); for (i = node->n_properties - 1; i >= 0; i--) { @@ -2978,7 +2980,8 @@ st_theme_node_get_border_image (StThemeNode *node) goto next_property; node->border_image = st_border_image_new (filename, - border_top, border_right, border_bottom, border_left); + border_top, border_right, border_bottom, border_left, + scale_factor); g_free (filename);