From 6783d8cda8e02a26ad0365c95f9863f80d7b7d02 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Fri, 24 Jun 2005 06:23:05 +0000
Subject: [PATCH] Include the option count when deciding if a dynamic menu
 needs updating. this still may not be enough to deal with shrinking menus...

---
 src/uifc/uifc32.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c
index e39d694478..235f4f580d 100644
--- a/src/uifc/uifc32.c
+++ b/src/uifc/uifc32.c
@@ -91,12 +91,14 @@ static int *last_menu_cur=NULL;
 static int *last_menu_bar=NULL;
 static int save_menu_cur=-1;
 static int save_menu_bar=-1;
+static int save_menu_opts=-1;
 
 static void reset_dynamic(void) {
 	last_menu_cur=NULL;
 	last_menu_bar=NULL;
 	save_menu_cur=-1;
 	save_menu_bar=-1;
+	save_menu_opts=-1;
 }
 
 /****************************************************************************/
@@ -585,7 +587,8 @@ int ulist(int mode, int left, int top, int width, int *cur, int *bar
 			&& last_menu_cur==cur
 			&& last_menu_bar==bar
 			&& save_menu_cur==*cur
-			&& save_menu_bar==*bar)
+			&& save_menu_bar==*bar
+			&& save_menu_opts==opts)
 		is_redraw=1;
 	if(mode&WIN_DYN && mode&WIN_REDRAW)
 		is_redraw=1;
@@ -1514,6 +1517,7 @@ int ulist(int mode, int left, int top, int width, int *cur, int *bar
 		if(mode&WIN_DYN) {
 			save_menu_cur=*cur;
 			save_menu_bar=*bar;
+			save_menu_opts=opts;
 			return(-2-i);
 		}
 	}
@@ -2313,7 +2317,8 @@ void showbuf(int mode, int left, int top, int width, int height, char *title, ch
 			&& last_menu_cur==curp
 			&& last_menu_bar==barp
 			&& save_menu_cur==*curp
-			&& save_menu_bar==*barp)
+			&& save_menu_bar==*barp
+			&& save_menu+opts==opts)
 		is_redraw=1;
 	if(mode&WIN_DYN && mode&WIN_REDRAW)
 		is_redraw=1;
-- 
GitLab