1
0
Fork 0
mirror of https://github.com/davatorium/rofi.git synced 2024-11-18 13:54:36 -05:00

Again final workaround for #303 (#1142)

This commit is contained in:
nick87720z 2020-06-09 20:17:50 +05:00 committed by GitHub
parent 3d5f0f086c
commit e275ed2283
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -404,30 +404,6 @@ static void textbox_free ( widget *wid )
g_slice_free ( textbox, tb ); g_slice_free ( textbox, tb );
} }
/* FIXME: workaround for cairo bug, when subpixel rendering failed with some cairo clip paths */
static void draw_pango_layout (cairo_t * cr, PangoLayout * layout, int x, int y)
{
cairo_surface_t * txt_surf;
cairo_t * txt_cr;
txt_surf = cairo_recording_surface_create (CAIRO_CONTENT_COLOR_ALPHA, NULL);
txt_cr = cairo_create (txt_surf);
cairo_set_source (txt_cr, cairo_get_source (cr));
pango_cairo_show_layout (txt_cr, layout);
cairo_destroy (txt_cr);
{
cairo_pattern_t * pat = cairo_get_source (cr);
cairo_pattern_reference (pat);
cairo_set_source_surface (cr, txt_surf, x, y);
cairo_paint (cr);
cairo_set_source (cr, pat);
}
cairo_surface_destroy (txt_surf);
}
static void textbox_draw ( widget *wid, cairo_t *draw ) static void textbox_draw ( widget *wid, cairo_t *draw )
{ {
if ( wid == NULL ) { if ( wid == NULL ) {
@ -471,7 +447,10 @@ static void textbox_draw ( widget *wid, cairo_t *draw )
// Set ARGB // Set ARGB
// We need to set over, otherwise subpixel hinting wont work. // We need to set over, otherwise subpixel hinting wont work.
cairo_move_to ( draw, x, top ); cairo_move_to ( draw, x, top );
draw_pango_layout (draw, tb->layout, x, top); cairo_save ( draw );
cairo_reset_clip ( draw );
pango_cairo_show_layout ( draw, tb->layout );
cairo_restore ( draw );
// draw the cursor // draw the cursor
rofi_theme_get_color ( WIDGET ( tb ), "text-color", draw ); rofi_theme_get_color ( WIDGET ( tb ), "text-color", draw );