diff --git a/src/FolderManager/FileView.vala b/src/FolderManager/FileView.vala index c97a540b18..2263056e5a 100644 --- a/src/FolderManager/FileView.vala +++ b/src/FolderManager/FileView.vala @@ -26,6 +26,7 @@ namespace Scratch.FolderManager { private GLib.Settings settings; public signal void select (string file); + public signal void close_all_docs_from_path (string path); // This is a workaround for SourceList silliness: you cannot remove an item // without it automatically selecting another one. @@ -143,6 +144,7 @@ namespace Scratch.FolderManager { folder_root.expanded = expand; folder_root.closed.connect (() => { + close_all_docs_from_path (folder_root.file.path); root.remove (folder_root); write_settings (); }); diff --git a/src/MainWindow.vala b/src/MainWindow.vala index 186a81d5ba..12402e25b4 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -345,6 +345,19 @@ namespace Scratch { } }); + folder_manager_view.close_all_docs_from_path.connect ((a) => { + if (!split_view.is_empty ()) { + split_view.views.foreach ((view) => { + var docs = view.docs.copy (); + docs.foreach ((doc) => { + if (doc.file.get_path ().has_prefix (a)) { + view.close_document (doc); + } + }); + }); + } + }); + folder_manager_view.restore_saved_state (); bottombar = new Gtk.Notebook ();