From 27897b97540f5521d9bb6504e2ca0f0f6252893a Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Sun, 29 Jun 2025 14:10:06 +0100 Subject: [PATCH 1/3] Properly hide exited terminal, restart shell --- src/Widgets/Terminal.vala | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Widgets/Terminal.vala b/src/Widgets/Terminal.vala index 1a2202eb2..52d55101b 100644 --- a/src/Widgets/Terminal.vala +++ b/src/Widgets/Terminal.vala @@ -44,7 +44,14 @@ public class Code.Terminal : Gtk.Box { } terminal.child_exited.connect (() => { - GLib.Application.get_default ().activate_action (Scratch.MainWindow.ACTION_PREFIX + Scratch.MainWindow.ACTION_TOGGLE_TERMINAL, null); + //Hide the exited terminal + var win_group = get_action_group (Scratch.MainWindow.ACTION_GROUP); + win_group.activate_action (Scratch.MainWindow.ACTION_TOGGLE_TERMINAL, null); + //Get ready to resume at last saved location + var settings = new Settings (Constants.PROJECT_NAME + ".saved-state"); + spawn_shell (settings.get_string ("last-opened-path")); + //Clear screen of new shell + terminal.feed_child ("clear -x\n".data); }); var copy_action = new SimpleAction (ACTION_COPY, null); @@ -125,6 +132,8 @@ public class Code.Terminal : Gtk.Box { Posix.kill (child_pid, Posix.Signal.TERM); terminal.reset (true, true); spawn_shell (dir); + var settings = new Settings (Constants.PROJECT_NAME + ".saved-state"); + settings.set_string ("last-opened-path", dir); } private string get_shell_location () { From f7d401462b5befd7523f944e637e93b4059fdcd8 Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Fri, 18 Jul 2025 20:56:51 +0100 Subject: [PATCH 2/3] Use existing settings object --- src/Widgets/Terminal.vala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Widgets/Terminal.vala b/src/Widgets/Terminal.vala index 52d55101b..a54474ef2 100644 --- a/src/Widgets/Terminal.vala +++ b/src/Widgets/Terminal.vala @@ -48,8 +48,7 @@ public class Code.Terminal : Gtk.Box { var win_group = get_action_group (Scratch.MainWindow.ACTION_GROUP); win_group.activate_action (Scratch.MainWindow.ACTION_TOGGLE_TERMINAL, null); //Get ready to resume at last saved location - var settings = new Settings (Constants.PROJECT_NAME + ".saved-state"); - spawn_shell (settings.get_string ("last-opened-path")); + spawn_shell (Scratch.saved_state.get_string ("last-opened-path")); //Clear screen of new shell terminal.feed_child ("clear -x\n".data); }); @@ -96,8 +95,7 @@ public class Code.Terminal : Gtk.Box { copy_action.set_enabled (terminal.get_has_selection ()); }); - var settings = new Settings (Constants.PROJECT_NAME + ".saved-state"); - spawn_shell (settings.get_string ("last-opened-path")); + spawn_shell (Scratch.saved_state.get_string ("last-opened-path")); var scrolled_window = new Gtk.ScrolledWindow (null, terminal.get_vadjustment ()); scrolled_window.add (terminal); @@ -105,7 +103,7 @@ public class Code.Terminal : Gtk.Box { add (scrolled_window); destroy.connect (() => { - settings.set_string ("last-opened-path", get_shell_location ()); + Scratch.saved_state.set_string ("last-opened-path", get_shell_location ()); }); show_all (); From b92bbaf96837fc762604a5bf732cf5fdc81841e8 Mon Sep 17 00:00:00 2001 From: Jeremy Wootten Date: Sun, 10 Aug 2025 13:33:28 +0100 Subject: [PATCH 3/3] Use existing saved-state settings object --- src/Widgets/Terminal.vala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Widgets/Terminal.vala b/src/Widgets/Terminal.vala index a54474ef2..ee28946f3 100644 --- a/src/Widgets/Terminal.vala +++ b/src/Widgets/Terminal.vala @@ -130,8 +130,7 @@ public class Code.Terminal : Gtk.Box { Posix.kill (child_pid, Posix.Signal.TERM); terminal.reset (true, true); spawn_shell (dir); - var settings = new Settings (Constants.PROJECT_NAME + ".saved-state"); - settings.set_string ("last-opened-path", dir); + Scratch.saved_state.set_string ("last-opened-path", dir); } private string get_shell_location () {