static void cmd_return(key_info_t key_info, keys_info_t *keys_info) { static menu_data_t *saved_menu; vle_mode_set(NORMAL_MODE, VMT_PRIMARY); saved_menu = menu; if(menu->execute_handler != NULL && menu->execute_handler(view, menu)) { vle_mode_set(MENU_MODE, VMT_PRIMARY); menu_full_redraw(); return; } if(!vle_mode_is(MENU_MODE)) { menus_reset_data(saved_menu); } else if(menu != saved_menu) { menus_reset_data(saved_menu); menu_partial_redraw(); } update_ui_on_leaving(); }
static void cmd_ctrl_m(key_info_t key_info, keys_info_t *keys_info) { static menu_info *saved_menu; vle_mode_set(NORMAL_MODE, VMT_PRIMARY); saved_menu = menu; if(menu->execute_handler != NULL && menu->execute_handler(curr_view, menu)) { vle_mode_set(MENU_MODE, VMT_PRIMARY); menu_redraw(); return; } if(!vle_mode_is(MENU_MODE)) { reset_popup_menu(saved_menu); } else if(menu != saved_menu) { reset_popup_menu(saved_menu); update_menu(); } update_ui_on_leaving(); }
/* Leaves menu mode, possibly resetting selection. Does nothing if current mode * isn't menu mode. */ static void leave_menu_mode(int reset_selection) { /* Some menu implementation could have switched mode from one of handlers. */ if(!vle_mode_is(MENU_MODE)) { return; } reset_popup_menu(menu); if(reset_selection) { clean_selected_files(view); redraw_view(view); } vle_mode_set(NORMAL_MODE, VMT_PRIMARY); update_ui_on_leaving(); }
/* Leaves menu mode, possibly resetting selection. Does nothing if current mode * isn't menu mode. */ static void leave_menu_mode(int reset_selection) { /* Some menu implementation could have switched mode from one of handlers. */ if(!vle_mode_is(MENU_MODE)) { return; } menus_reset_data(menu); if(reset_selection) { flist_sel_stash(view); redraw_view(view); } vle_mode_set(NORMAL_MODE, VMT_PRIMARY); update_ui_on_leaving(); }