Compare commits
2 commits
2472f80111
...
4ed4aa17d2
Author | SHA1 | Date | |
---|---|---|---|
4ed4aa17d2 | |||
ba24b8b5b7 |
1 changed files with 22 additions and 0 deletions
|
@ -33,6 +33,9 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
def __init__(self, *args: Any, **kwargs: Any):
|
def __init__(self, *args: Any, **kwargs: Any):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
# Directory history stack
|
||||||
|
self.directory_history: list[str] = []
|
||||||
|
|
||||||
# For overlay text timeout
|
# For overlay text timeout
|
||||||
self.overlay_hide_time = 0.0
|
self.overlay_hide_time = 0.0
|
||||||
self.last_position_save = 0.0
|
self.last_position_save = 0.0
|
||||||
|
@ -148,6 +151,8 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
file_item = cast(FileItem, selected_item)
|
file_item = cast(FileItem, selected_item)
|
||||||
|
|
||||||
if file_item.file_type == FileType.DIRECTORY:
|
if file_item.file_type == FileType.DIRECTORY:
|
||||||
|
# Save current directory before changing
|
||||||
|
self.directory_history.append(os.getcwd())
|
||||||
os.chdir(file_item.full_path)
|
os.chdir(file_item.full_path)
|
||||||
self._populate_file_list()
|
self._populate_file_list()
|
||||||
return
|
return
|
||||||
|
@ -369,6 +374,23 @@ class MainWindow(Gtk.ApplicationWindow):
|
||||||
self._toggle_watched_status()
|
self._toggle_watched_status()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
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
|
return False
|
||||||
|
|
||||||
def _on_key_pressed(
|
def _on_key_pressed(
|
||||||
|
|
Loading…
Reference in a new issue