Commit e81a90c4 authored by Alberts Muktupāvels's avatar Alberts Muktupāvels

window: fix opaque region

Decoration node for drawing is used only for client side decorated
windows, but corners from opaque region is subtracted also for
normal windows.

Rename function to better reflect what it does and do not subtract
corners if decoration node was not used for drawing.
parent fe385c28
Pipeline #134721 passed with stages
in 11 minutes and 8 seconds
......@@ -5420,14 +5420,20 @@ corner_rect (cairo_rectangle_int_t *rect,
}
static void
subtract_corners_from_region (cairo_region_t *region,
cairo_rectangle_int_t *extents,
GtkStyleContext *context,
GtkWindow *window)
subtract_decoration_corners_from_region (cairo_region_t *region,
cairo_rectangle_int_t *extents,
GtkStyleContext *context,
GtkWindow *window)
{
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
cairo_rectangle_int_t rect;
if (!priv->client_decorated ||
!priv->decorated ||
priv->fullscreen ||
priv->maximized)
return;
gtk_style_context_save_to_node (context, priv->decoration_node);
corner_rect (&rect, _gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BORDER_TOP_LEFT_RADIUS));
......@@ -5485,7 +5491,7 @@ update_opaque_region (GtkWindow *window,
opaque_region = cairo_region_create_rectangle (&rect);
subtract_corners_from_region (opaque_region, &rect, context, window);
subtract_decoration_corners_from_region (opaque_region, &rect, context, window);
}
else
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment