forked from AuroraMiddleware/gtk
gl renderer: Ignore rounded clip that only increase the clip
This fixes the widget factory rendering too much. In the widget-factory, we generally have a pretty small update area (two spinners and a progressbar). We take the extents of that as a update area and inital clip. However, the first clip node we see is from the toplevel window, which essentially increases the clip again to almost the entire window. Fix that by ignoring such cases.
This commit is contained in:
parent
d6b3ac850d
commit
34008e6aab
@ -1313,6 +1313,15 @@ render_rounded_clip_node (GskGLRenderer *self,
|
||||
transformed_clip.corner[i].height = clip->corner[i].height * scale;
|
||||
}
|
||||
|
||||
/* If the new clip entirely contains the current clip, the intersection is simply
|
||||
* the current clip, so we can ignore the new one */
|
||||
if (rounded_inner_rect_contains_rect (&transformed_clip, &builder->current_clip->bounds))
|
||||
{
|
||||
gsk_gl_renderer_add_render_ops (self, child, builder);
|
||||
return;
|
||||
}
|
||||
|
||||
/* TODO: Intersect current and new clip */
|
||||
ops_push_clip (builder, &transformed_clip);
|
||||
gsk_gl_renderer_add_render_ops (self, child, builder);
|
||||
ops_pop_clip (builder);
|
||||
|
Loading…
Reference in New Issue
Block a user