diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 24ced0c171..9e056fe774 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -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 {