diff options
Diffstat (limited to 'swaybar/render.c')
-rw-r--r-- | swaybar/render.c | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/swaybar/render.c b/swaybar/render.c index 481e0293..d78d7c90 100644 --- a/swaybar/render.c +++ b/swaybar/render.c | |||
@@ -153,11 +153,11 @@ static uint32_t render_status_block(cairo_t *cairo, | |||
153 | } | 153 | } |
154 | 154 | ||
155 | *x -= width; | 155 | *x -= width; |
156 | if (block->border && block->border_left > 0) { | 156 | if ((block->border || block->urgent) && block->border_left > 0) { |
157 | *x -= (block->border_left + margin); | 157 | *x -= (block->border_left + margin); |
158 | block_width += block->border_left + margin; | 158 | block_width += block->border_left + margin; |
159 | } | 159 | } |
160 | if (block->border && block->border_right > 0) { | 160 | if ((block->border || block->urgent) && block->border_right > 0) { |
161 | *x -= (block->border_right + margin); | 161 | *x -= (block->border_right + margin); |
162 | block_width += block->border_right + margin; | 162 | block_width += block->border_right + margin; |
163 | } | 163 | } |
@@ -196,29 +196,38 @@ static uint32_t render_status_block(cairo_t *cairo, | |||
196 | } | 196 | } |
197 | 197 | ||
198 | double pos = *x; | 198 | double pos = *x; |
199 | if (block->background) { | 199 | |
200 | cairo_set_source_u32(cairo, block->background); | 200 | uint32_t bg_color = block->urgent |
201 | ? config->colors.urgent_workspace.background : block->background; | ||
202 | if (bg_color) { | ||
203 | cairo_set_source_u32(cairo, bg_color); | ||
201 | cairo_rectangle(cairo, pos - 0.5 * output->scale, | 204 | cairo_rectangle(cairo, pos - 0.5 * output->scale, |
202 | output->scale, width, height); | 205 | output->scale, width, height); |
203 | cairo_fill(cairo); | 206 | cairo_fill(cairo); |
204 | } | 207 | } |
205 | 208 | ||
206 | if (block->border && block->border_top > 0) { | 209 | uint32_t border_color = block->urgent |
207 | render_sharp_line(cairo, block->border, | 210 | ? config->colors.urgent_workspace.border : block->border; |
211 | if (border_color && block->border_top > 0) { | ||
212 | render_sharp_line(cairo, border_color, | ||
208 | pos - 0.5 * output->scale, output->scale, | 213 | pos - 0.5 * output->scale, output->scale, |
209 | block_width, block->border_top); | 214 | text_width, block->border_top); |
210 | } | 215 | } |
211 | if (block->border && block->border_bottom > 0) { | 216 | if (border_color && block->border_bottom > 0) { |
212 | render_sharp_line(cairo, block->border, | 217 | render_sharp_line(cairo, border_color, |
213 | pos - 0.5 * output->scale, | 218 | pos - 0.5 * output->scale, |
214 | height - output->scale - block->border_bottom, | 219 | height - output->scale - block->border_bottom, |
215 | block_width, block->border_bottom); | 220 | text_width, block->border_bottom); |
216 | } | 221 | } |
217 | if (block->border != 0 && block->border_left > 0) { | 222 | if (border_color != 0 && block->border_left > 0) { |
218 | render_sharp_line(cairo, block->border, | 223 | render_sharp_line(cairo, border_color, |
219 | pos - 0.5 * output->scale, output->scale, | 224 | pos - 0.5 * output->scale, output->scale, |
220 | block->border_left, height); | 225 | block->border_left, height); |
221 | pos += block->border_left + margin; | 226 | } |
227 | if (border_color != 0 && block->border_right > 0) { | ||
228 | render_sharp_line(cairo, border_color, | ||
229 | pos - 0.5 * output->scale + text_width, output->scale, | ||
230 | block->border_right, height); | ||
222 | } | 231 | } |
223 | 232 | ||
224 | double offset = 0; | 233 | double offset = 0; |
@@ -231,6 +240,7 @@ static uint32_t render_status_block(cairo_t *cairo, | |||
231 | } | 240 | } |
232 | cairo_move_to(cairo, offset, height / 2.0 - text_height / 2.0); | 241 | cairo_move_to(cairo, offset, height / 2.0 - text_height / 2.0); |
233 | uint32_t color = block->color ? *block->color : config->colors.statusline; | 242 | uint32_t color = block->color ? *block->color : config->colors.statusline; |
243 | color = block->urgent ? config->colors.urgent_workspace.text : color; | ||
234 | cairo_set_source_u32(cairo, color); | 244 | cairo_set_source_u32(cairo, color); |
235 | pango_printf(cairo, config->font, output->scale, | 245 | pango_printf(cairo, config->font, output->scale, |
236 | block->markup, "%s", block->full_text); | 246 | block->markup, "%s", block->full_text); |