diff -urN cui37/cui.c cui38/cui.c --- cui37/cui.c Fri Jan 31 01:30:00 2014 +++ cui38/cui.c Fri Jan 31 01:40:00 2014 @@ -34,6 +34,13 @@ if(main_stack) main_stack->focus = obj; } +void +cui_focus_chk(void) +{ + cui f = cui_focus_get(); + if(f && (!cui_is_visible(f) || !cui_is_visible_rect(f))) cui_focus_set(NULL); +} + int cui_running_get(void) { @@ -188,7 +195,6 @@ { obj->flags |= CUI_FLG_HIDE; cui_clear(obj); - if(obj == cui_focus_get()) cui_focus_set(NULL); } void diff -urN cui37/cui.h cui38/cui.h --- cui37/cui.h Fri Jan 31 01:30:00 2014 +++ cui38/cui.h Fri Jan 31 01:40:00 2014 @@ -61,6 +61,7 @@ cui cui_focus_get(void); void cui_focus_set(cui obj); +void cui_focus_chk(void); int cui_running_get(void); void cui_running_set(int v);