Ejemplo n.º 1
0
void process_result_error  ( RofiViewState *state )
{
    rofi_view_set_active ( NULL );
    rofi_view_free ( state );
    teardown ( pfd );
    g_main_loop_quit ( main_loop );
}
Ejemplo n.º 2
0
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 );
}
Ejemplo n.º 3
0
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] );
        }
    }
}