static void fm_tab_page_chdir_without_history(FmTabPage* page, FmPath* path) { FmFolderView* folder_view = FM_FOLDER_VIEW(page->folder_view); FmFolder* folder = fm_folder_view_get_folder(folder_view); char * disp_path = fm_path_display_name(path, FALSE); fm_tab_label_set_tooltip_text(FM_TAB_LABEL(page->tab_label), disp_path); g_free(disp_path); char* disp_name = fm_path_display_basename(path); fm_tab_label_set_text(FM_TAB_LABEL(page->tab_label), disp_name); g_free(disp_name); /* disconnect from previous folder */ disconnect_folder(page, folder); /* chdir to a new folder */ fm_folder_view_chdir(folder_view, path); folder = fm_folder_view_get_folder(folder_view); if(folder) { g_signal_connect(folder, "fs-info", G_CALLBACK(on_folder_fs_info), page); // on_folder_fs_info(folder, win); fm_folder_query_filesystem_info(folder); } fm_side_pane_chdir(FM_SIDE_PANE(page->side_pane), path); /* destroy the page when the folder is unmounted or deleted. */ g_signal_connect_swapped(folder, "unmount", G_CALLBACK(gtk_widget_destroy), page); g_signal_connect_swapped(folder, "removed", G_CALLBACK(gtk_widget_destroy), page); g_signal_connect(folder, "content-changed", G_CALLBACK(on_folder_content_changed), page); g_signal_connect(folder, "fs-info", G_CALLBACK(on_folder_fs_info), page); /* tell the world that our current working directory is changed */ g_signal_emit(page, signals[CHDIR], 0, path); }
void fm_main_win_chdir_without_history(FmMainWin* win, FmPath* path) { fm_folder_view_chdir(FM_FOLDER_VIEW(win->folder_view), path); /* fm_nav_history_set_cur(); */ }