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(