diff --git a/drw.c b/drw.c index d8d0ac0..570f383 100644 --- a/drw.c +++ b/drw.c @@ -47,9 +47,15 @@ drw_draw_text(struct drwsurf *d, Color color, uint32_t x, uint32_t y, // if a word is too long, cairo let it, and ignore our width if (width < (w - (b*2))) { - cairo_rel_move_to(d->cairo, - width / 2, - height / 2); + cairo_rel_move_to(d->cairo, - width / 2, 0); } else { - cairo_rel_move_to(d->cairo, - w / 2 + b, - height / 2); + cairo_rel_move_to(d->cairo, - w / 2 + b, 0); + } + + if (height < (h - (b*2))) { + cairo_rel_move_to(d->cairo, 0, - height / 2); + } else { + cairo_rel_move_to(d->cairo, 0, - h / 2); } pango_cairo_show_layout(d->cairo, d->layout); diff --git a/keyboard.c b/keyboard.c index e7038e1..a04597d 100644 --- a/keyboard.c +++ b/keyboard.c @@ -525,6 +525,10 @@ kbd_draw_key(struct kbd *kb, struct key *k, enum key_draw_type type) { drw_do_rectangle(d, kb->scheme.bg, right_part_x, k->y, kb->w - right_part_x, k->h, false); + uint32_t bottom_part_y = k->y + k->h - 1 * KBD_KEY_BORDER; + drw_do_rectangle(d, kb->scheme.bg, k->x, bottom_part_y, + kb->h - bottom_part_y, k->w, false); + wl_surface_damage(d->surf, k->x, k->y, k->w, k->h); }