diff -urN cui110/cui.c cui111/cui.c --- cui110/cui.c Mon Apr 14 00:00:00 2014 +++ cui111/cui.c Mon Apr 14 01:00:00 2014 @@ -375,7 +375,7 @@ cui_hide(cui obj) { if(obj->flags & CUI_FLG_HIDE) return; - if(cui_esc_cnt > 0) cui_clear(obj); + cui_clear(obj); obj->flags |= CUI_FLG_HIDE; } @@ -384,7 +384,14 @@ { if(!(obj->flags & CUI_FLG_HIDE)) return; obj->flags &= ~CUI_FLG_HIDE; - if(cui_esc_cnt > 0) cui_draw(obj); + cui_draw(obj); +} + +void +cui_show_hide(cui obj, int v) +{ + if(v) cui_show(obj); + else cui_hide(obj); } int @@ -432,7 +439,7 @@ void cui_xywh_set(cui obj, int x, int y, int w, int h) { - int visi = cui_is_visible(obj) && cui_esc_cnt > 0; + int visi = cui_is_visible(obj); int rsz = (obj->w != w || obj->h != h); struct cui_rect r1, r2; cui_rects rs, ri; diff -urN cui110/cui.h cui111/cui.h --- cui110/cui.h Sun Apr 13 22:00:00 2014 +++ cui111/cui.h Mon Apr 14 01:00:00 2014 @@ -68,6 +68,7 @@ void cui_draw_chain(cui obj); void cui_hide(cui obj); void cui_show(cui obj); +void cui_show_hide(cui obj, int v); int cui_is_visible(cui obj); int cui_visible_rect(cui obj, cui_rect r); int cui_is_visible_rect(cui obj); diff -urN cui110/cui_test.c cui111/cui_test.c --- cui110/cui_test.c Mon Apr 14 00:00:00 2014 +++ cui111/cui_test.c Mon Apr 14 01:00:00 2014 @@ -73,8 +73,7 @@ my_hdr2(cui obj, int evt, int val, void *prm) { cui dlg = (cui)prm; - if(val) cui_show(dlg); - else cui_hide(dlg); + cui_show_hide(dlg, val); return TRUE; } diff -urN cui110/esc.c cui111/esc.c --- cui110/esc.c Thu Apr 10 22:00:00 2014 +++ cui111/esc.c Mon Apr 14 01:00:00 2014 @@ -61,12 +61,9 @@ cui_esc(onoff ? "?25h" : "?25l"); } -int cui_esc_cnt = 0; - void cui_esc_enter(void) { - if(cui_esc_cnt++ > 0) return; cui_esc_cursor_pos_save(); cui_esc_exopt(CUI_ESC_CURSOR_ONOFF, 0); } @@ -74,7 +71,6 @@ void cui_esc_exit(void) { - if(--cui_esc_cnt > 0) return; cui_esc_attr(CUI_ESC_NORMAL); cui_esc_exopt(CUI_ESC_CURSOR_ONOFF, 1); cui_esc_cursor_pos_load(); diff -urN cui110/esc.h cui111/esc.h --- cui110/esc.h Sat Feb 1 02:00:00 2014 +++ cui111/esc.h Mon Apr 14 01:00:00 2014 @@ -12,8 +12,6 @@ #define CUI_ESC_CURSOR_ONOFF 25 #define CUI_ESC_SCREEN_SAVE_LOAD 47 -extern int cui_esc_cnt; - void cui_esc(char *s); void cui_esc_cls(void); void cui_esc_loc(int x, int y); diff -urN cui110/tab.c cui111/tab.c --- cui110/tab.c Mon Apr 14 00:00:00 2014 +++ cui111/tab.c Mon Apr 14 01:00:00 2014 @@ -50,8 +50,7 @@ return TRUE; case CUI_EVT_BUTTON: sheet = (cui)prm; - if(val) cui_show(sheet); - else cui_hide(sheet); + cui_show_hide(sheet, val); return TRUE; } return FALSE;