From 7b75f15fa785c8a3816de19cf635203f4531b757 Mon Sep 17 00:00:00 2001 From: "Jordan K. Hubbard" Date: Sat, 20 Apr 1996 01:56:06 +0000 Subject: [PATCH] Another bug fix for the DITEM_REDRAW case. --- gnu/lib/libdialog/checklist.c | 4 ++-- gnu/lib/libdialog/radiolist.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/lib/libdialog/checklist.c b/gnu/lib/libdialog/checklist.c index 4be32827631..1090293792c 100644 --- a/gnu/lib/libdialog/checklist.c +++ b/gnu/lib/libdialog/checklist.c @@ -316,9 +316,9 @@ draw: save = dupwin(newscr); st = ditems[scroll + choice].fire(&ditems[scroll + choice]); if (st & DITEM_REDRAW) { + for (i = 0; i < item_no; i++) + status[i] = ditems[i].checked ? ditems[i].checked(&ditems[i]) : FALSE; for (i = 0; i < max_choice; i++) { - status[scroll + i] = ditems[scroll + i].checked ? - ditems[scroll + i].checked(&ditems[scroll + i]) : FALSE; print_item(list, items[(scroll + i) * 3], items[(scroll + i) * 3 + 1], status[scroll + i], i, i == choice, DREF(ditems, scroll + i)); } diff --git a/gnu/lib/libdialog/radiolist.c b/gnu/lib/libdialog/radiolist.c index daa88817c6a..970953bb3ae 100644 --- a/gnu/lib/libdialog/radiolist.c +++ b/gnu/lib/libdialog/radiolist.c @@ -322,9 +322,10 @@ draw: save = dupwin(newscr); st = ditems[scroll + choice].fire(&ditems[scroll + choice]); if (st & DITEM_REDRAW) { + for (i = 0; i < item_no; i++) + status[i] = ditems[i].checked ? ditems[i].checked(&ditems[i]) : FALSE; + for (i = 0; i < max_choice; i++) { - status[scroll + i] = ditems[scroll + i].checked ? - ditems[scroll + i].checked(&ditems[scroll + i]) : FALSE; print_item(list, items[(scroll + i) * 3], items[(scroll + i) * 3 + 1], status[scroll + i], i, i == choice, DREF(ditems, scroll + i));