void process_result_error ( RofiViewState *state ) { rofi_view_set_active ( NULL ); rofi_view_free ( state ); teardown ( pfd ); g_main_loop_quit ( main_loop ); }
static void dmenu_finish ( RofiViewState *state, int retv ) { if ( retv == FALSE ) { rofi_set_return_code ( EXIT_FAILURE ); } else if ( retv >= 10 ) { rofi_set_return_code ( retv ); } else{ rofi_set_return_code ( EXIT_SUCCESS ); } rofi_view_set_active ( NULL ); rofi_view_free ( state ); mode_destroy ( &dmenu_mode ); }
void process_result ( RofiViewState *state ) { Mode *sw = state->sw; if ( sw != NULL ) { unsigned int selected_line = rofi_view_get_selected_line ( state );; MenuReturn mretv = rofi_view_get_return_value ( state ); char *input = g_strdup ( rofi_view_get_user_input ( state ) ); rofi_view_set_active ( NULL ); rofi_view_free ( state ); ModeMode retv = mode_result ( sw, mretv, &input, selected_line ); ModeMode mode = curr_switcher; // Find next enabled if ( retv == NEXT_DIALOG ) { mode = ( mode + 1 ) % num_modi; } else if ( retv == PREVIOUS_DIALOG ) { if ( mode == 0 ) { mode = num_modi - 1; } else { mode = ( mode - 1 ) % num_modi; } } else if ( retv == RELOAD_DIALOG ) { // do nothing. } else if ( retv < MODE_EXIT ) { mode = ( retv ) % num_modi; } else { mode = retv; } if ( mode != MODE_EXIT ) { /** * Load in the new mode. */ __run_switcher_internal ( mode, input ); g_free ( input ); return; } // Cleanup g_free ( input ); for ( unsigned int i = 0; i < num_modi; i++ ) { mode_destroy ( modi[i] ); } } }