From f29e2a9f196581467d8c7c109f6ef13d8d6f1fc9 Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Fri, 15 Dec 2023 17:49:01 +0000 Subject: [PATCH] Close root folder if externally deleted or renamed --- src/FolderManager/FolderItem.vala | 2 +- src/FolderManager/ProjectFolderItem.vala | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/FolderManager/FolderItem.vala b/src/FolderManager/FolderItem.vala index a4ab38b72..de0250080 100644 --- a/src/FolderManager/FolderItem.vala +++ b/src/FolderManager/FolderItem.vala @@ -253,7 +253,7 @@ namespace Scratch.FolderManager { has_dummy = false; } - private void on_changed (GLib.File source, GLib.File? dest, GLib.FileMonitorEvent event) { + protected virtual void on_changed (GLib.File source, GLib.File? dest, GLib.FileMonitorEvent event) { if (source.get_basename ().has_prefix (".goutputstream")) { return; // Ignore changes due to temp files and streams } diff --git a/src/FolderManager/ProjectFolderItem.vala b/src/FolderManager/ProjectFolderItem.vala index 247b0803c..46864b003 100644 --- a/src/FolderManager/ProjectFolderItem.vala +++ b/src/FolderManager/ProjectFolderItem.vala @@ -82,6 +82,14 @@ namespace Scratch.FolderManager { } } + protected override void on_changed (GLib.File source, GLib.File? dest, GLib.FileMonitorEvent event) { + if (source.equal (file.file) && event == DELETED) { + closed (); + } else { + base.on_changed (source, dest, event); + } + } + public void child_folder_changed (FolderItem folder) { if (monitored_repo != null) { monitored_repo.update_status_map ();