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:
parent
7af8c09f10
commit
fcce2e019a
16
lib/menu.c
16
lib/menu.c
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue