[gtk/wip/muktupavels/opaque-region-master] window: fix opaque region
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/muktupavels/opaque-region-master] window: fix opaque region
- Date: Sat, 30 Nov 2019 18:20:57 +0000 (UTC)
commit e81a90c4324caacc2668586d2014db57b936b049
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sat Nov 30 20:19:26 2019 +0200
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.
gtk/gtkwindow.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
---
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
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]