diff --git a/lib/menu.c b/lib/menu.c index 42bb3b6d99fb11327c38975a32bf02f6212518c9..67f3cc63dc6ea7218a676e4f1422c90dec9aa778 100644 --- a/lib/menu.c +++ b/lib/menu.c @@ -710,8 +710,11 @@ bm_menu_run_with_key(struct bm_menu *menu, enum bm_key key, uint32_t unicode) break; case BM_KEY_DELETE: - if (menu->filter) - bm_utf8_rune_remove(menu->filter, menu->cursor + 1, NULL); + if (menu->filter) { + size_t width = bm_utf8_rune_next(menu->filter, menu->cursor); + if (width) + bm_utf8_rune_remove(menu->filter, menu->cursor + width, NULL); + } break; case BM_KEY_LINE_DELETE_LEFT: