mirror of
https://github.com/labwc/labwc.git
synced 2026-04-07 08:21:20 -04:00
Adapt workspace switcher Cairo logic to use modified border cache
This commit is contained in:
parent
2f2cf73bfa
commit
8188f0a80e
1 changed files with 18 additions and 35 deletions
|
|
@ -116,63 +116,46 @@ _osd_update(void)
|
||||||
uint32_t colour32 = (uint32_t)(a*255) << 24 | (uint32_t)(r*255) << 16 | (uint32_t)(g*255) << 8 | (uint32_t)(b*255);
|
uint32_t colour32 = (uint32_t)(a*255) << 24 | (uint32_t)(r*255) << 16 | (uint32_t)(g*255) << 8 | (uint32_t)(b*255);
|
||||||
struct borderset * renderedborders = getBorders(colour32, bw, BORDER_SINGLE, 0);
|
struct borderset * renderedborders = getBorders(colour32, bw, BORDER_SINGLE, 0);
|
||||||
|
|
||||||
|
cairo_set_source_surface(cairo, renderedborders->top->surface, 0, 0);
|
||||||
cairo_surface_t* top = cairo_image_surface_create_for_data((unsigned char *)renderedborders->top, CAIRO_FORMAT_ARGB32, 1, 1, 4);
|
|
||||||
cairo_set_source_surface(cairo, top, 0, 0);
|
|
||||||
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
||||||
cairo_rectangle(cairo, bw, 0, width-bw*2, bw);
|
cairo_rectangle(cairo, bw, 0, width-bw*2, bw);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(top);
|
|
||||||
|
|
||||||
cairo_surface_t* bottom = cairo_image_surface_create_for_data((unsigned char *)renderedborders->bottom, CAIRO_FORMAT_ARGB32, 1, 1, 4);
|
cairo_set_source_surface(cairo, renderedborders->bottom->surface, 0, 0);
|
||||||
cairo_set_source_surface(cairo, bottom, 0, 0);
|
|
||||||
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
||||||
cairo_rectangle(cairo, bw, height-bw, width-bw*2, bw);
|
cairo_rectangle(cairo, bw, height-bw, width-bw*2, bw);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(bottom);
|
|
||||||
|
|
||||||
|
|
||||||
cairo_surface_t* left = cairo_image_surface_create_for_data((unsigned char *)renderedborders->left, CAIRO_FORMAT_ARGB32, 1, 1, 4);
|
|
||||||
cairo_set_source_surface(cairo, left, 0, 0);
|
cairo_set_source_surface(cairo, renderedborders->left->surface, 0, 0);
|
||||||
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
||||||
cairo_rectangle(cairo, 0, bw, bw, height-bw*2);
|
cairo_rectangle(cairo, 0, bw, bw, height-bw*2);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(left);
|
|
||||||
|
|
||||||
cairo_surface_t* right = cairo_image_surface_create_for_data((unsigned char *)renderedborders->right, CAIRO_FORMAT_ARGB32, 1, 1, 4);
|
|
||||||
cairo_set_source_surface(cairo, right, 0, 0);
|
cairo_set_source_surface(cairo, renderedborders->right->surface, 0, 0);
|
||||||
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
cairo_pattern_set_extend(cairo_get_source(cairo), CAIRO_EXTEND_REPEAT);
|
||||||
cairo_rectangle(cairo, width-bw, bw, bw, height-bw*2);
|
cairo_rectangle(cairo, width-bw, bw, bw, height-bw*2);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(right);
|
|
||||||
|
|
||||||
|
|
||||||
cairo_surface_t* tl = cairo_image_surface_create_for_data((unsigned char *)renderedborders->tl, CAIRO_FORMAT_ARGB32, bw, bw, 4*bw);
|
|
||||||
cairo_set_source_surface(cairo, tl, 0, 0);
|
cairo_set_source_surface(cairo, renderedborders->tl->surface, 0, 0);
|
||||||
cairo_rectangle(cairo, 0, 0, bw, bw);
|
cairo_rectangle(cairo, 0, 0, bw, bw);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(tl);
|
|
||||||
|
|
||||||
|
cairo_set_source_surface(cairo, renderedborders->tr->surface, width-bw, 0);
|
||||||
|
|
||||||
|
|
||||||
cairo_surface_t* tr = cairo_image_surface_create_for_data((unsigned char *)renderedborders->tr, CAIRO_FORMAT_ARGB32, bw, bw, 4*bw);
|
|
||||||
cairo_set_source_surface(cairo, tr, width-bw, 0);
|
|
||||||
cairo_rectangle(cairo, width - bw, 0, bw, bw);
|
cairo_rectangle(cairo, width - bw, 0, bw, bw);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(tr);
|
|
||||||
|
|
||||||
cairo_surface_t* bl = cairo_image_surface_create_for_data((unsigned char *)renderedborders->bl, CAIRO_FORMAT_ARGB32, bw, bw, 4*bw);
|
cairo_set_source_surface(cairo, renderedborders->bl->surface, 0, height - bw);
|
||||||
cairo_set_source_surface(cairo, bl, 0, height - bw);
|
|
||||||
cairo_rectangle(cairo, 0, height - bw, bw, bw);
|
cairo_rectangle(cairo, 0, height - bw, bw, bw);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(bl);
|
|
||||||
|
|
||||||
cairo_surface_t* br = cairo_image_surface_create_for_data((unsigned char *)renderedborders->br, CAIRO_FORMAT_ARGB32, bw, bw, 4*bw);
|
cairo_set_source_surface(cairo, renderedborders->br->surface, width - bw, height -bw);
|
||||||
cairo_set_source_surface(cairo, br, width - bw, height -bw);
|
|
||||||
cairo_rectangle(cairo, width - bw, height - bw, bw, bw);
|
cairo_rectangle(cairo, width - bw, height - bw, bw, bw);
|
||||||
cairo_fill(cairo);
|
cairo_fill(cairo);
|
||||||
cairo_surface_finish(br);
|
|
||||||
|
|
||||||
|
|
||||||
set_cairo_color(cairo, theme->osd_border_color);
|
set_cairo_color(cairo, theme->osd_border_color);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue