From b8340f1355bb1949511effb7868aa2ef7e3731dd Mon Sep 17 00:00:00 2001 From: Daniel van Vugt Date: Tue, 26 Jun 2018 17:45:34 +0800 Subject: [PATCH] clutter-text: Avoid clipping the wrong framebuffer `ClutterText` painting for editable single_line_mode actors like `StEntry` is always clipped by: `cogl_framebuffer_push_rectangle_clip (fb, 0, 0, alloc_width, alloc_height)` So it's difficult to get the rectangle wrong. However in cases where the target framebuffer has changed (`cogl_push_framebuffer`) such as when updating `ClutterOffscreenEffect` we had the wrong old value of `fb`. And so would be clipping the wrong framebuffer, effectively not clipping at all. --- clutter/clutter/clutter-text.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c index 744d8a323..e186417a2 100644 --- a/clutter/clutter/clutter-text.c +++ b/clutter/clutter/clutter-text.c @@ -1782,7 +1782,7 @@ selection_paint (ClutterText *self) CoglColor cogl_color = { 0, }; CoglFramebuffer *fb; - fb = _clutter_actor_get_active_framebuffer (actor); + fb = cogl_get_draw_framebuffer (); if (G_UNLIKELY (fb == NULL)) return; @@ -2391,13 +2391,7 @@ clutter_text_paint (ClutterActor *self) float alloc_width; float alloc_height; - /* FIXME: this should not be needed, but apparently the text-cache - * test unit manages to get in a situation where the active frame - * buffer is NULL - */ - fb = _clutter_actor_get_active_framebuffer (self); - if (fb == NULL) - fb = cogl_get_draw_framebuffer (); + fb = cogl_get_draw_framebuffer (); /* Note that if anything in this paint method changes it needs to be reflected in the get_paint_volume implementation which is tightly