From 1cfd340caeaab4f3f9ef72ac78f4486359f1fe6c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 28 Aug 2021 15:42:30 -0400 Subject: ngl: Avoid a coordinate overflow This was showing up as big text selections going missing sporadically. Fixes: #4214 --- gsk/ngl/gsknglrenderjob.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gsk/ngl/gsknglrenderjob.c b/gsk/ngl/gsknglrenderjob.c index 532157d1be..ef4d075997 100644 --- a/gsk/ngl/gsknglrenderjob.c +++ b/gsk/ngl/gsknglrenderjob.c @@ -1408,7 +1408,10 @@ gsk_ngl_render_job_visit_color_node (GskNglRenderJob *job, program = CHOOSE_PROGRAM (job, coloring); batch = gsk_ngl_command_queue_get_batch (job->command_queue); - if (batch->any.kind == GSK_NGL_COMMAND_KIND_DRAW && + /* Limit the size, or we end up with a coordinate overflow somwhere. */ + if (node->bounds.size.width < 300 && + node->bounds.size.height < 300 && + batch->any.kind == GSK_NGL_COMMAND_KIND_DRAW && batch->any.program == program->id) { GskNglRenderOffscreen offscreen = {0}; -- cgit v1.2.1