void on_go_back(GtkAction* act, FmMainWin* win) { if(fm_nav_history_get_can_back(win->nav_history)) { FmNavHistoryItem* item; int scroll_pos = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(win->folder_view))); fm_nav_history_back(win->nav_history, scroll_pos); item = fm_nav_history_get_cur(win->nav_history); /* FIXME: should this be driven by a signal emitted on FmNavHistory? */ fm_main_win_chdir_without_history(win, item->path); } }
void fm_tab_page_back(FmTabPage* page) { FmMainWin* win = FM_MAIN_WIN(gtk_widget_get_toplevel(GTK_WIDGET(page))); if(fm_nav_history_get_can_back(page->nav_history)) { FmNavHistoryItem* item; GtkAdjustment* vadjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(page->folder_view)); int scroll_pos = gtk_adjustment_get_value(vadjustment); fm_nav_history_back(page->nav_history, scroll_pos); item = fm_nav_history_get_cur(page->nav_history); fm_tab_page_chdir_without_history(page, item->path); } }