From ba24b8b5b7b9c3eec001728361eb2c99d6db15af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hamal=20Dvo=C5=99=C3=A1k?= <mordae@anilinux.org> Date: Sun, 9 Mar 2025 10:58:01 +0100 Subject: [PATCH] Add history stack --- lazy_player/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lazy_player/__init__.py b/lazy_player/__init__.py index cc1a8d7..e198c0a 100644 --- a/lazy_player/__init__.py +++ b/lazy_player/__init__.py @@ -33,6 +33,9 @@ class MainWindow(Gtk.ApplicationWindow): def __init__(self, *args: Any, **kwargs: Any): super().__init__(*args, **kwargs) + # Directory history stack + self.directory_history: list[str] = [] + # For overlay text timeout self.overlay_hide_time = 0.0 self.last_position_save = 0.0 @@ -148,6 +151,8 @@ class MainWindow(Gtk.ApplicationWindow): file_item = cast(FileItem, selected_item) if file_item.file_type == FileType.DIRECTORY: + # Save current directory before changing + self.directory_history.append(os.getcwd()) os.chdir(file_item.full_path) self._populate_file_list() return @@ -369,6 +374,13 @@ class MainWindow(Gtk.ApplicationWindow): self._toggle_watched_status() return True + elif keyval == Gdk.keyval_from_name("BackSpace"): + if self.directory_history: + prev_dir = self.directory_history.pop() + os.chdir(prev_dir) + self._populate_file_list() + return True + return False def _on_key_pressed(