From 2770a5d7f81a16bf0e74b42c58a80a12789e607e Mon Sep 17 00:00:00 2001 From: ChengqiangMeng Date: Tue, 16 Mar 2021 10:02:06 +0800 Subject: [PATCH] spdk_top:fix a bug of disabled Columns. Return the previous state of the column when we press Q or ESC. Fixes issue #1829 Signed-off-by: ChengqiangMeng Change-Id: If049c0dcebfa3d71ac9c5266541083108df1d883 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6893 Tested-by: SPDK CI Jenkins Reviewed-by: Krzysztof Karas Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu Reviewed-by: GangCao --- app/spdk_top/spdk_top.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/spdk_top/spdk_top.c b/app/spdk_top/spdk_top.c index 2e23a82c2..98c7f5534 100644 --- a/app/spdk_top/spdk_top.c +++ b/app/spdk_top/spdk_top.c @@ -1598,6 +1598,7 @@ filter_columns(uint8_t tab) ITEM *cur; void (*p)(enum tabs tab); uint8_t current_index, len = 0; + bool disabled[TABS_COL_COUNT]; for (i = 0; col_desc[i].name != NULL; ++i) { len = spdk_max(col_desc[i].name_len, len); @@ -1628,6 +1629,10 @@ filter_columns(uint8_t tab) goto fail; } + for (int i = 0; i < TABS_COL_COUNT; i++) { + disabled[i] = col_desc[i].disabled; + } + while (!stop_loop) { c = wgetch(filter_win); @@ -1640,6 +1645,17 @@ filter_columns(uint8_t tab) break; case 27: /* ESC */ case 'q': + for (int i = 0; i < TABS_COL_COUNT; i++) { + cur = current_item(my_menu); + col_desc[i].disabled = disabled[i]; + + my_items = refresh_filtering_menu(&my_menu, filter_win, tab, my_items, elements, + item_index(cur) + 1); + if (my_items == NULL || my_menu == NULL) { + goto fail; + } + } + stop_loop = true; break; case ' ': /* Space */