[libhandy/wip/exalm/leaflet-transltions: 2/10] shadow-helper: Mark the shadow area for GdkWindow
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libhandy/wip/exalm/leaflet-transltions: 2/10] shadow-helper: Mark the shadow area for GdkWindow
- Date: Sun, 31 May 2020 17:02:43 +0000 (UTC)
commit 814b9d41a440d82fbb29e13547dd4037db55227b
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Sun May 31 22:00:42 2020 +0500
shadow-helper: Mark the shadow area for GdkWindow
This is one of the needed steps to have it drawn over OpenGL content.
src/hdy-shadow-helper.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
---
diff --git a/src/hdy-shadow-helper.c b/src/hdy-shadow-helper.c
index 242a6073..7a835320 100644
--- a/src/hdy-shadow-helper.c
+++ b/src/hdy-shadow-helper.c
@@ -362,6 +362,29 @@ hdy_shadow_helper_draw_shadow (HdyShadowHelper *self,
if (remaining_distance < shadow_size)
shadow_opacity = (remaining_distance / shadow_size);
+ cairo_save (cr);
+
+ switch (direction) {
+ case GTK_PAN_DIRECTION_RIGHT:
+ cairo_rectangle (cr, 0, 0, width + self->outline_size, height);
+ break;
+ case GTK_PAN_DIRECTION_DOWN:
+ cairo_rectangle (cr, 0, 0, width, height + self->outline_size);
+ break;
+ case GTK_PAN_DIRECTION_LEFT:
+ cairo_rectangle (cr, -self->outline_size, 0, width + self->outline_size, height);
+ break;
+ case GTK_PAN_DIRECTION_UP:
+ cairo_rectangle (cr, 0, -self->outline_size, width, height + self->outline_size);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+
+ cairo_clip (cr);
+
+ gdk_window_mark_paint_from_clip (gtk_widget_get_window (self->widget), cr);
+
cairo_save (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_ATOP);
cairo_set_source (cr, self->dimming_pattern);
@@ -430,4 +453,6 @@ hdy_shadow_helper_draw_shadow (HdyShadowHelper *self,
cairo_set_source (cr, self->outline_pattern);
cairo_paint (cr);
cairo_restore (cr);
+
+ cairo_restore (cr);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]