| From 30d6e3abe2a0251b11513d66d15a59cd0705a828 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> |
| Date: Mon, 27 May 2019 17:48:41 +0000 |
| Subject: [PATCH 1/2] clutter-text: Fix selection color drawing |
| |
| Commit cabcad185 removed the call to cogl_set_source_color4ub() before |
| cogl_fill_path(), so instead of the previously assigned selection color, |
| the background is drawn with the last set source. |
| |
| In order to honour the newly added framebuffer parameter and still apply |
| the correct color, switch from cogl_fill_path() to the (deprecated!) |
| cogl_framebuffer_fill_path() method. |
| |
| https://gitlab.gnome.org/GNOME/mutter/issues/494 |
| |
| clutter/clutter/clutter-text.c | 11 ++++++++++- |
| 1 file changed, 10 insertions(+), 1 deletion(-) |
| |
| diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c |
| index fb9d926df..000bbbbd4 100644 |
| |
| |
| @@ -1975,6 +1975,7 @@ selection_paint (ClutterText *self, |
| else |
| { |
| /* Paint selection background first */ |
| + CoglPipeline *color_pipeline = cogl_pipeline_copy (default_color_pipeline); |
| PangoLayout *layout = clutter_text_get_layout (self); |
| CoglPath *selection_path = cogl_path_new (); |
| CoglColor cogl_color = { 0, }; |
| @@ -1987,11 +1988,19 @@ selection_paint (ClutterText *self, |
| else |
| color = &priv->text_color; |
| |
| + cogl_color_init_from_4ub (&cogl_color, |
| + color->red, |
| + color->green, |
| + color->blue, |
| + paint_opacity * color->alpha / 255); |
| + cogl_color_premultiply (&cogl_color); |
| + cogl_pipeline_set_color (color_pipeline, &cogl_color); |
| + |
| clutter_text_foreach_selection_rectangle_prescaled (self, |
| add_selection_rectangle_to_path, |
| selection_path); |
| |
| - cogl_path_fill (selection_path); |
| + cogl_framebuffer_fill_path (fb, color_pipeline, selection_path); |
| |
| /* Paint selected text */ |
| cogl_framebuffer_push_path_clip (fb, selection_path); |
| -- |
| 2.21.0 |
| |
| |
| From 13a1624c1050c91cd4d8a298f7a10fafe56fe9e5 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org> |
| Date: Mon, 27 May 2019 22:40:47 +0000 |
| Subject: [PATCH 2/2] cogl-path: Undeprecate framebuffer functions |
| |
| It looks like deprecating the functions with explicit framebuffer/pipeline |
| arguments made it to (cogl) master by mistake: |
| |
| https://mail.gnome.org/archives/clutter-list/2016-April/msg00008.html |
| |
| We now use one of them, so this is a good time to undeprecate the lot. |
| |
| https://gitlab.gnome.org/GNOME/mutter/merge_requests/597 |
| |
| cogl/cogl-path/cogl-path-functions.h | 6 ------ |
| cogl/cogl-path/cogl-path.c | 3 --- |
| 2 files changed, 9 deletions(-) |
| |
| diff --git a/cogl/cogl-path/cogl-path-functions.h b/cogl/cogl-path/cogl-path-functions.h |
| index d4ef328d2..318fed028 100644 |
| |
| |
| @@ -460,9 +460,7 @@ cogl_path_fill (CoglPath *path); |
| * use while filling a path.</note> |
| * |
| * Stability: unstable |
| - * Deprecated: 1.16: Use cogl_path_fill() instead |
| */ |
| -COGL_DEPRECATED_FOR (cogl_path_fill) |
| void |
| cogl_framebuffer_fill_path (CoglFramebuffer *framebuffer, |
| CoglPipeline *pipeline, |
| @@ -492,9 +490,7 @@ cogl_path_stroke (CoglPath *path); |
| * regardless of the current transformation matrix. |
| * |
| * Stability: unstable |
| - * Deprecated: 1.16: Use cogl_path_stroke() instead |
| */ |
| -COGL_DEPRECATED_FOR (cogl_path_stroke) |
| void |
| cogl_framebuffer_stroke_path (CoglFramebuffer *framebuffer, |
| CoglPipeline *pipeline, |
| @@ -529,9 +525,7 @@ cogl_framebuffer_push_path_clip (CoglFramebuffer *framebuffer, |
| * |
| * Since: 1.8 |
| * Stability: Unstable |
| - * Deprecated: 1.16: Use cogl_framebuffer_push_path_clip() instead |
| */ |
| -COGL_DEPRECATED_FOR (cogl_framebuffer_push_path_clip) |
| void |
| cogl_clip_push_from_path (CoglPath *path); |
| |
| diff --git a/cogl/cogl-path/cogl-path.c b/cogl/cogl-path/cogl-path.c |
| index 4d86c6fb5..8774406f8 100644 |
| |
| |
| @@ -1504,7 +1504,6 @@ cogl_framebuffer_push_path_clip (CoglFramebuffer *framebuffer, |
| COGL_FRAMEBUFFER_STATE_CLIP; |
| } |
| |
| -/* XXX: deprecated */ |
| void |
| cogl_clip_push_from_path (CoglPath *path) |
| { |
| @@ -1575,7 +1574,6 @@ _cogl_path_build_stroke_attribute_buffer (CoglPath *path) |
| data->stroke_n_attributes = n_attributes; |
| } |
| |
| -/* XXX: deprecated */ |
| void |
| cogl_framebuffer_fill_path (CoglFramebuffer *framebuffer, |
| CoglPipeline *pipeline, |
| @@ -1588,7 +1586,6 @@ cogl_framebuffer_fill_path (CoglFramebuffer *framebuffer, |
| _cogl_path_fill_nodes (path, framebuffer, pipeline, 0 /* flags */); |
| } |
| |
| -/* XXX: deprecated */ |
| void |
| cogl_framebuffer_stroke_path (CoglFramebuffer *framebuffer, |
| CoglPipeline *pipeline, |
| -- |
| 2.21.0 |
| |