emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals-release/activities 7a3bba7b26 028/103: Add/Fix


From: ELPA Syncer
Subject: [elpa] externals-release/activities 7a3bba7b26 028/103: Add/Fix
Date: Tue, 30 Jan 2024 03:57:48 -0500 (EST)

branch: externals-release/activities
commit 7a3bba7b26a2314b5c596f5405f44d695908d526
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Add/Fix
---
 activity-tabs.el | 13 +++++++++++--
 activity.el      | 12 +++---------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/activity-tabs.el b/activity-tabs.el
index 94e1fee325..b524579cc2 100644
--- a/activity-tabs.el
+++ b/activity-tabs.el
@@ -63,15 +63,24 @@ accordingly."
         (advice-add #'activity-active-p :override 
#'activity-tabs-activity-active-p)
         (advice-add #'activity--set :override #'activity-tabs-activity--set)
         (advice-add #'activity-switch :override #'activity-tabs-switch)
-        (advice-add #'activity-current :override #'activity-tabs-current))
+        (advice-add #'activity-current :override #'activity-tabs-current)
+        (advice-add #'activity-close :override #'activity-tabs-close))
     (advice-remove #'activity-resume #'activity-tabs-before-resume)
     (advice-remove #'activity-active-p #'activity-tabs-activity-active-p)
     (advice-remove #'activity--set #'activity-tabs-activity--set)
     (advice-remove #'activity-switch #'activity-tabs-switch)
-    (advice-remove #'activity-current #'activity-tabs-current)))
+    (advice-remove #'activity-current #'activity-tabs-current)
+    (advice-remove #'activity-close #'activity-tabs-close)))
 
 ;;;; Functions
 
+(cl-defun activity-tabs-close (activity)
+  "Close ACTIVITY.
+Its state is not saved, and its frames, windows, and tabs are
+closed."
+  (activity-switch activity)
+  (tab-bar-close-tab))
+
 (defun activity-tabs-switch (activity)
   "Switch to ACTIVITY.
 Selects its tab, making one if needed.  Its state is not changed."
diff --git a/activity.el b/activity.el
index d6a484769c..b2dd3b790b 100644
--- a/activity.el
+++ b/activity.el
@@ -377,15 +377,9 @@ See option `activity-always-persist'."
   "Close ACTIVITY.
 Its state is not saved, and its frames, windows, and tabs are
 closed."
-  (pcase-let* (((cl-struct activity name) activity)
-               (frame (cl-find-if
-                       (lambda (frame)
-                         (equal name (activity-name (frame-parameter frame 
'activity))))
-                       (frame-list))))
-    ;; TODO: Set frame parameter when resuming.
-    (unless (length= 1 (frame-list))
-      ;; Not only frame: delete it.
-      (delete-frame frame))))
+  (activity-switch activity)
+  ;; TODO: Set frame parameter when resuming.
+  (delete-frame))
 
 (defun activity-named (name)
   "Return activity having NAME."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]