From 4ed4aa17d2eaa3e99a1f94273fe03739050411cf 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 11:07:03 +0100
Subject: [PATCH] Position cursor correctly when returning

---
 lazy_player/__init__.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/lazy_player/__init__.py b/lazy_player/__init__.py
index e198c0a..b467ddf 100644
--- a/lazy_player/__init__.py
+++ b/lazy_player/__init__.py
@@ -377,8 +377,18 @@ class MainWindow(Gtk.ApplicationWindow):
         elif keyval == Gdk.keyval_from_name("BackSpace"):
             if self.directory_history:
                 prev_dir = self.directory_history.pop()
+                current_dir_name = Path(os.getcwd()).name
                 os.chdir(prev_dir)
                 self._populate_file_list()
+
+                # Find and select the directory we came from
+                for i in range(self.list_store.get_n_items()):
+                    item = self.list_store.get_item(i)
+                    if item and cast(FileItem, item).name == current_dir_name:
+                        self.list_view.scroll_to(
+                            i, Gtk.ListScrollFlags.SELECT | Gtk.ListScrollFlags.FOCUS, None
+                        )
+                        break
             return True
 
         return False