static void
open_selected_bookmark (gpointer user_data, GdkScreen *screen)
{
    CajaBookmark *selected;
    CajaWindow *window;
    GFile *location;

    selected = get_selected_bookmark ();

    if (!selected)
    {
        return;
    }

    location = caja_bookmark_get_location (selected);
    if (location == NULL)
    {
        return;
    }

    if (CAJA_IS_NAVIGATION_WINDOW (user_data))
    {
        window = user_data;
    }
    else if (CAJA_IS_SPATIAL_WINDOW (user_data))
    {
        window = caja_application_get_spatial_window (application,
                                                      NULL,
                                                      NULL,
                                                      location,
                                                      screen,
                                                      NULL,
                                                      FALSE);
    } else { /* window that opened bookmarks window has been closed */
        if (parent_is_browser_window || g_settings_get_boolean (caja_preferences, CAJA_PREFERENCES_ALWAYS_USE_BROWSER)) {
            window = caja_application_create_navigation_window (application,
                     NULL,
                     screen);
        }
        else
        {
            window = caja_application_get_spatial_window (application,
                                                          NULL,
                                                          NULL,
                                                          location,
                                                          screen,
                                                          NULL,
                                                          FALSE);
        }
    }

    caja_window_go_to (window, location);

    g_object_unref (location);
}
예제 #2
0
void
caja_desktop_window_update_directory (CajaDesktopWindow *window)
{
    GFile *location;

    g_assert (CAJA_IS_DESKTOP_WINDOW (window));

    location = g_file_new_for_uri (EEL_DESKTOP_URI);
    caja_window_go_to (CAJA_WINDOW (window), location);
    window->details->loaded = TRUE;

    g_object_unref (location);
}