Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] Enhancing accessibility of lxdialog

For easily getting fairly good accessibility, the TTY cursor should
always be left at the focus location. This patch fixes the checklist by
just having the list refreshed after the dialog box (hence the cursor
position remains in the list).

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Samuel Thibault and committed by
Linus Torvalds
f043ca43 9a7e9f1c

+9 -10
+9 -10
scripts/kconfig/lxdialog/checklist.c
··· 196 196 197 197 print_buttons(dialog, height, width, 0); 198 198 199 - wnoutrefresh(list); 200 199 wnoutrefresh(dialog); 200 + wnoutrefresh(list); 201 201 doupdate(); 202 202 203 203 while (key != ESC) { ··· 225 225 } 226 226 scroll--; 227 227 print_item(list, items[scroll * 3 + 1], status[scroll], 0, TRUE); 228 - wnoutrefresh(list); 229 - 230 228 print_arrows(dialog, choice, item_no, 231 229 scroll, box_y, box_x + check_x + 5, list_height); 232 230 233 - wrefresh(dialog); 231 + wnoutrefresh(dialog); 232 + wrefresh(list); 234 233 235 234 continue; /* wait for another key press */ 236 235 } else ··· 251 252 scroll++; 252 253 print_item(list, items[(scroll + max_choice - 1) * 3 + 1], 253 254 status[scroll + max_choice - 1], max_choice - 1, TRUE); 254 - wnoutrefresh(list); 255 255 256 256 print_arrows(dialog, choice, item_no, 257 257 scroll, box_y, box_x + check_x + 5, list_height); 258 258 259 - wrefresh(dialog); 259 + wnoutrefresh(dialog); 260 + wrefresh(list); 260 261 261 262 continue; /* wait for another key press */ 262 263 } else ··· 270 271 choice = i; 271 272 print_item(list, items[(scroll + choice) * 3 + 1], 272 273 status[scroll + choice], choice, TRUE); 273 - wnoutrefresh(list); 274 - wrefresh(dialog); 274 + wnoutrefresh(dialog); 275 + wrefresh(list); 275 276 } 276 277 continue; /* wait for another key press */ 277 278 } ··· 305 306 print_item(list, items[(scroll + i) * 3 + 1], 306 307 status[scroll + i], i, i == choice); 307 308 } 308 - wnoutrefresh(list); 309 - wrefresh(dialog); 309 + wnoutrefresh(dialog); 310 + wrefresh(list); 310 311 311 312 for (i = 0; i < item_no; i++) 312 313 if (status[i])