Index: dialog-1.3-20160424/checklist.c =================================================================== --- dialog-1.3-20160424.orig/checklist.c 2015-01-26 00:53:06.000000000 +0100 +++ dialog-1.3-20160424/checklist.c 2016-05-25 14:31:18.000000000 +0200 @@ -537,6 +537,30 @@ print_list(&all, choice, scrollamt, max_choice); } } + // START hotter-keys + int current = scrollamt + choice; + int next = items[current].state + 1; + if (next >= num_states) + next = 0; + for (i = 0; i < item_no; i++) { + if (i != current) { + items[i].state = 0; + } + } + if (items[current].state) { + getyx(dialog, cur_y, cur_x); + items[current].state = next ? next : 1; + print_item(&all, all.list, + &items[current], + states, + choice, TRUE); + (void) wnoutrefresh(all.list); + (void) wmove(dialog, cur_y, cur_x); + } else { + items[current].state = 1; + print_list(&all, choice, scrollamt, max_choice); + } + // END hotter-keys continue; /* wait for another key press */ }