Adapt to pick changes
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
This commit is contained in:
parent
0b2430128a
commit
69516a52c6
@ -434,39 +434,24 @@ st_viewport_pick (ClutterActor *actor,
|
|||||||
ClutterActorBox allocation_box;
|
ClutterActorBox allocation_box;
|
||||||
ClutterActorBox content_box;
|
ClutterActorBox content_box;
|
||||||
ClutterActor *child;
|
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);
|
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)
|
if (clutter_actor_get_n_children (actor) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
clutter_actor_get_allocation_box (actor, &allocation_box);
|
clutter_actor_get_allocation_box (actor, &allocation_box);
|
||||||
st_theme_node_get_content_box (theme_node, &allocation_box, &content_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.x1 += x;
|
||||||
content_box.y1 += y;
|
content_box.y1 += y;
|
||||||
content_box.x2 += x;
|
content_box.x2 += x;
|
||||||
content_box.y2 += y;
|
content_box.y2 += y;
|
||||||
|
|
||||||
if (priv->hadjustment || priv->vadjustment)
|
if (priv->hadjustment || priv->vadjustment)
|
||||||
{
|
clutter_pick_context_push_clip (pick_context, &content_box);
|
||||||
cogl_framebuffer_push_rectangle_clip (fb,
|
|
||||||
(int)content_box.x1,
|
|
||||||
(int)content_box.y1,
|
|
||||||
(int)content_box.x2,
|
|
||||||
(int)content_box.y2);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (child = clutter_actor_get_first_child (actor);
|
for (child = clutter_actor_get_first_child (actor);
|
||||||
child != NULL;
|
child != NULL;
|
||||||
@ -474,7 +459,7 @@ st_viewport_pick (ClutterActor *actor,
|
|||||||
clutter_actor_pick (child, pick_context);
|
clutter_actor_pick (child, pick_context);
|
||||||
|
|
||||||
if (priv->hadjustment || priv->vadjustment)
|
if (priv->hadjustment || priv->vadjustment)
|
||||||
cogl_framebuffer_pop_clip (fb);
|
clutter_pick_context_pop_clip (pick_context);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Loading…
Reference in New Issue
Block a user