implement more function, including {set,unset}_ic_focus, forward_event, reset_ic