font: Get rid of temporary cairo surface
i3 actually manages to have two different cairo surfaces referring to the same drawable. One comes from the code in draw_util. The second is temporarily created while rendering text via draw_text(). No idea how well cairo handles this case. This commit instead changes the code to pass the already existing cairo surface from the caller through. This might or might not fix https://github.com/i3/i3/pull/4357. My thinking here is that cairo now knows the actual size of the drawable and thus does not clip the drawing to a smaller size. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
@ -133,7 +133,7 @@ void draw_util_text(i3String *text, surface_t *surface, color_t fg_color, color_
|
||||
CAIRO_SURFACE_FLUSH(surface->surface);
|
||||
|
||||
set_font_colors(surface->gc, fg_color, bg_color);
|
||||
draw_text(text, surface->id, surface->gc, surface->visual_type, x, y, max_width);
|
||||
draw_text(text, surface->id, surface->gc, surface->surface, x, y, max_width);
|
||||
|
||||
/* Notify cairo that we (possibly) used another way to draw on the surface. */
|
||||
cairo_surface_mark_dirty(surface->surface);
|
||||
|
Reference in New Issue
Block a user