1
0
Fork 0
mirror of https://github.com/Cloudef/bemenu synced 2024-06-01 04:16:21 +02:00

menu: left/right now moves always cursor

Use SHIFT + left/right to move selection
This commit is contained in:
Jari Vetoniemi 2020-02-07 18:28:48 +02:00
parent 7af8c09f10
commit fcce2e019a
3 changed files with 10 additions and 14 deletions

View File

@ -639,22 +639,18 @@ bm_menu_run_with_key(struct bm_menu *menu, enum bm_key key, uint32_t unicode)
switch (key) {
case BM_KEY_LEFT:
if (menu->lines > 0 && menu->filter) {
uint32_t oldCursor = menu->cursor;
if (menu->filter) {
const uint32_t old_cursor = menu->cursor;
menu->cursor -= bm_utf8_rune_prev(menu->filter, menu->cursor);
menu->curses_cursor -= bm_utf8_rune_width(menu->filter + menu->cursor, oldCursor - menu->cursor);
} else if (menu->lines == 0) {
menu_prev(menu, count, menu->wrap);
menu->curses_cursor -= bm_utf8_rune_width(menu->filter + menu->cursor, old_cursor - menu->cursor);
}
break;
case BM_KEY_RIGHT:
if (menu->lines > 0 && menu->filter) {
uint32_t oldCursor = menu->cursor;
if (menu->filter) {
const uint32_t old_cursor = menu->cursor;
menu->cursor += bm_utf8_rune_next(menu->filter, menu->cursor);
menu->curses_cursor += bm_utf8_rune_width(menu->filter + oldCursor, menu->cursor - oldCursor);
} else if (menu->lines == 0) {
menu_next(menu, count, menu->wrap);
menu->curses_cursor += bm_utf8_rune_width(menu->filter + old_cursor, menu->cursor - old_cursor);
}
break;

View File

@ -80,10 +80,10 @@ poll_key(const struct bm_menu *menu, unsigned int *unicode)
return BM_KEY_DOWN;
case XKB_KEY_Left:
return BM_KEY_LEFT;
return (mods & MOD_SHIFT ? BM_KEY_UP : BM_KEY_LEFT);
case XKB_KEY_Right:
return BM_KEY_RIGHT;
return (mods & MOD_SHIFT ? BM_KEY_DOWN : BM_KEY_RIGHT);
case XKB_KEY_Home:
return BM_KEY_HOME;

View File

@ -56,10 +56,10 @@ poll_key(const struct bm_menu *menu, unsigned int *unicode)
return BM_KEY_DOWN;
case XK_Left:
return BM_KEY_LEFT;
return (mods & MOD_SHIFT ? BM_KEY_UP : BM_KEY_LEFT);
case XK_Right:
return BM_KEY_RIGHT;
return (mods & MOD_SHIFT ? BM_KEY_DOWN : BM_KEY_RIGHT);
case XK_Home:
return BM_KEY_HOME;