summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2020-10-17 12:34:22 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2020-10-23 19:43:07 -0300
commitd6206c64d29e0ed0838a8649bd0f408910bcfeba (patch)
tree26ccada0408a2a1331564968f968928808599205
parentf5d1a2858d2a54f0344648ead219c553cd482737 (diff)
downloadgnome-shell-gbsneto/graphene-ray.tar.gz
Adapt to pick changesgbsneto/graphene-ray
It turns out, StViewport's pick implementation was broken, since Clutter stopped reading clipping from the framebuffer. Rejoice with bugfixing by removing code! https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1470
-rw-r--r--src/st/st-viewport.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/src/st/st-viewport.c b/src/st/st-viewport.c
index 864b04404..3ed2d89e1 100644
--- a/src/st/st-viewport.c
+++ b/src/st/st-viewport.c
@@ -434,39 +434,24 @@ st_viewport_pick (ClutterActor *actor,
ClutterActorBox allocation_box;
ClutterActorBox content_box;
ClutterActor *child;
- CoglFramebuffer *fb = clutter_pick_context_get_framebuffer (pick_context);
-
- get_border_paint_offsets (viewport, &x, &y);
- if (x != 0 || y != 0)
- {
- cogl_framebuffer_push_matrix (fb);
- cogl_framebuffer_translate (fb, (int)x, (int)y, 0);
- }
CLUTTER_ACTOR_CLASS (st_viewport_parent_class)->pick (actor, pick_context);
- if (x != 0 || y != 0)
- cogl_framebuffer_pop_matrix (fb);
-
if (clutter_actor_get_n_children (actor) == 0)
return;
clutter_actor_get_allocation_box (actor, &allocation_box);
st_theme_node_get_content_box (theme_node, &allocation_box, &content_box);
+ get_border_paint_offsets (viewport, &x, &y);
+
content_box.x1 += x;
content_box.y1 += y;
content_box.x2 += x;
content_box.y2 += y;
if (priv->hadjustment || priv->vadjustment)
- {
- cogl_framebuffer_push_rectangle_clip (fb,
- (int)content_box.x1,
- (int)content_box.y1,
- (int)content_box.x2,
- (int)content_box.y2);
- }
+ clutter_pick_context_push_clip (pick_context, &content_box);
for (child = clutter_actor_get_first_child (actor);
child != NULL;
@@ -474,7 +459,7 @@ st_viewport_pick (ClutterActor *actor,
clutter_actor_pick (child, pick_context);
if (priv->hadjustment || priv->vadjustment)
- cogl_framebuffer_pop_clip (fb);
+ clutter_pick_context_pop_clip (pick_context);
}
static gboolean