[libhandy] shadow-helper: Support hidpi
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libhandy] shadow-helper: Support hidpi
- Date: Wed, 11 Nov 2020 13:43:12 +0000 (UTC)
commit 7538617d6053a1a3762d9e2aec7752091dc866ac
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date: Wed Nov 11 18:19:44 2020 +0500
shadow-helper: Support hidpi
src/hdy-shadow-helper.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
---
diff --git a/src/hdy-shadow-helper.c b/src/hdy-shadow-helper.c
index 929f04a3..14712ecc 100644
--- a/src/hdy-shadow-helper.c
+++ b/src/hdy-shadow-helper.c
@@ -115,13 +115,16 @@ get_element_size (GtkStyleContext *context,
static cairo_pattern_t *
create_element_pattern (GtkStyleContext *context,
gint width,
- gint height)
+ gint height,
+ gint scale)
{
g_autoptr (cairo_surface_t) surface =
- cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
+ cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width * scale, height * scale);
g_autoptr (cairo_t) cr = cairo_create (surface);
cairo_pattern_t *pattern;
+ cairo_surface_set_device_scale (surface, scale, scale);
+
gtk_render_background (context, cr, 0, 0, width, height);
gtk_render_frame (context, cr, 0, 0, width, height);
@@ -162,15 +165,15 @@ cache_shadow (HdyShadowHelper *self,
border_size = get_element_size (border_context, direction);
outline_size = get_element_size (outline_context, direction);
- self->dimming_pattern = create_element_pattern (dim_context, width, height);
+ self->dimming_pattern = create_element_pattern (dim_context, width, height, scale);
if (direction == GTK_PAN_DIRECTION_LEFT || direction == GTK_PAN_DIRECTION_RIGHT) {
- self->shadow_pattern = create_element_pattern (shadow_context, shadow_size, height);
- self->border_pattern = create_element_pattern (border_context, border_size, height);
- self->outline_pattern = create_element_pattern (outline_context, outline_size, height);
+ self->shadow_pattern = create_element_pattern (shadow_context, shadow_size, height, scale);
+ self->border_pattern = create_element_pattern (border_context, border_size, height, scale);
+ self->outline_pattern = create_element_pattern (outline_context, outline_size, height, scale);
} else {
- self->shadow_pattern = create_element_pattern (shadow_context, width, shadow_size);
- self->border_pattern = create_element_pattern (border_context, width, border_size);
- self->outline_pattern = create_element_pattern (outline_context, width, outline_size);
+ self->shadow_pattern = create_element_pattern (shadow_context, width, shadow_size, scale);
+ self->border_pattern = create_element_pattern (border_context, width, border_size, scale);
+ self->outline_pattern = create_element_pattern (outline_context, width, outline_size, scale);
}
self->border_size = border_size;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]