diff mbox series

kconfig: lxdialog: fixed cursor render in checklist

Message ID 20240216141016.11425-1-dev.mbstr@gmail.com (mailing list archive)
State New
Headers show
Series kconfig: lxdialog: fixed cursor render in checklist | expand

Commit Message

Matthew Bystrin Feb. 16, 2024, 2:10 p.m. UTC
When a checklist is opened, the cursor is rendered in a wrong position
(after the last list element on the screen). You can observe it by
opening any checklist in menuconfig.

Added wmove() to set the cursor in the proper position, just like in
menubox.c. Removed wnoutrefresh(dialog) because dialog window has
already been updated in print_buttons(). Replaced wnoutrefresh(list) and
doupdate() calls with one wrefresh(list) call.

Signed-off-by: Matthew Bystrin <dev.mbstr@gmail.com>
---
 scripts/kconfig/lxdialog/checklist.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Masahiro Yamada Feb. 20, 2024, 11:31 a.m. UTC | #1
On Fri, Feb 16, 2024 at 11:10 PM Matthew Bystrin <dev.mbstr@gmail.com> wrote:
>
> When a checklist is opened, the cursor is rendered in a wrong position
> (after the last list element on the screen). You can observe it by
> opening any checklist in menuconfig.
>
> Added wmove() to set the cursor in the proper position, just like in
> menubox.c. Removed wnoutrefresh(dialog) because dialog window has
> already been updated in print_buttons(). Replaced wnoutrefresh(list) and
> doupdate() calls with one wrefresh(list) call.
>
> Signed-off-by: Matthew Bystrin <dev.mbstr@gmail.com>


Applied to linux-kbuild.

Thanks.




> ---
>  scripts/kconfig/lxdialog/checklist.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c
> index fd161cfff121..31d0a89fbeb7 100644
> --- a/scripts/kconfig/lxdialog/checklist.c
> +++ b/scripts/kconfig/lxdialog/checklist.c
> @@ -188,9 +188,8 @@ int dialog_checklist(const char *title, const char *prompt, int height,
>
>         print_buttons(dialog, height, width, 0);
>
> -       wnoutrefresh(dialog);
> -       wnoutrefresh(list);
> -       doupdate();
> +       wmove(list, choice, check_x + 1);
> +       wrefresh(list);
>
>         while (key != KEY_ESC) {
>                 key = wgetch(dialog);
> --
> 2.43.0
>
diff mbox series

Patch

diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c
index fd161cfff121..31d0a89fbeb7 100644
--- a/scripts/kconfig/lxdialog/checklist.c
+++ b/scripts/kconfig/lxdialog/checklist.c
@@ -188,9 +188,8 @@  int dialog_checklist(const char *title, const char *prompt, int height,
 
 	print_buttons(dialog, height, width, 0);
 
-	wnoutrefresh(dialog);
-	wnoutrefresh(list);
-	doupdate();
+	wmove(list, choice, check_x + 1);
+	wrefresh(list);
 
 	while (key != KEY_ESC) {
 		key = wgetch(dialog);