From b2e4e8e27c02184b69c6e6ebb28433b6a0daaea4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 1 Sep 2025 01:00:08 +0200 Subject: [PATCH] revert: persp-mode Bad-ptr/persp-mode.el@82680795b3db -> Bad-ptr/persp-mode.el@40e9993a9711 persp-mode introduced some breaking API changes in a recent refactoring, which have caused issues that are difficult to opt out of, even by repinning it to an older commit. Until persp-mode sorts things out, I simply revert it back to a point before all the changes. Revert: c64ca09ed27b Revert: 751ac6134b6a Revert: 6d5e004b871e Amend: a1121acc94dd Fix: #8455 Close: #8474 Ref: #8470 --- modules/ui/treemacs/config.el | 8 -------- modules/ui/workspaces/autoload/workspaces.el | 3 ++- modules/ui/workspaces/config.el | 4 +--- modules/ui/workspaces/packages.el | 2 +- 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/modules/ui/treemacs/config.el b/modules/ui/treemacs/config.el index 4ee9a8e0b..62e3e6ddb 100644 --- a/modules/ui/treemacs/config.el +++ b/modules/ui/treemacs/config.el @@ -29,14 +29,6 @@ This must be set before `treemacs' has loaded.") ;; Don't follow the cursor (it's more disruptive/jarring than helpful as a default) (treemacs-follow-mode -1) - ;; HACK: persp-mode changed the signature for `persp-activated-functions', but - ;; treemacs hasn't updated its usage yet. - ;; REVIEW: PR upstream - (remove-hook 'persp-activated-functions #'treemacs--remove-treemacs-window-in-new-frames) - (add-hook! 'persp-activated-functions - (defun +treemacs--remove-treemacs-window-in-new-frames-h (type &rest _) - (treemacs--remove-treemacs-window-in-new-frames type))) - (set-popup-rule! "^ ?\\*Treemacs" :ignore t) (when +treemacs-git-mode ;; If they aren't supported, fall back to simpler methods diff --git a/modules/ui/workspaces/autoload/workspaces.el b/modules/ui/workspaces/autoload/workspaces.el index 8f11116dd..9977b09b5 100644 --- a/modules/ui/workspaces/autoload/workspaces.el +++ b/modules/ui/workspaces/autoload/workspaces.el @@ -155,7 +155,8 @@ Otherwise return t on success, nil otherwise." (+popup--inhibit-transient t)) (persp-delete-other-windows)) (switch-to-buffer (doom-fallback-buffer)) - (setf (persp-window-conf persp) (persp-window-state-get))) + (setf (persp-window-conf persp) + (funcall persp-window-state-get-function (selected-frame)))) persp)) ;;;###autoload diff --git a/modules/ui/workspaces/config.el b/modules/ui/workspaces/config.el index 42101f3d7..40ed334d9 100644 --- a/modules/ui/workspaces/config.el +++ b/modules/ui/workspaces/config.el @@ -212,9 +212,7 @@ stored in `persp-save-dir'.") (advice-add #'persp-asave-on-exit :around #'+workspaces-autosave-real-buffers-a) ;; Fix #1973: visual selection surviving workspace changes - (add-hook! 'persp-before-deactivate-functions - (defun +workspaces-disable-mark-after-switch-h (&rest _) - (deactivate-mark))) + (add-hook 'persp-before-deactivate-functions #'deactivate-mark) ;; Fix #1017: stop session persistence from restoring a broken posframe (after! posframe diff --git a/modules/ui/workspaces/packages.el b/modules/ui/workspaces/packages.el index 0becf2eb8..2279bfac5 100644 --- a/modules/ui/workspaces/packages.el +++ b/modules/ui/workspaces/packages.el @@ -1,4 +1,4 @@ ;; -*- no-byte-compile: t; -*- ;;; ui/workspaces/packages.el -(package! persp-mode :pin "82680795b3dbb9f9fb023b1754902f38519d9875") +(package! persp-mode :pin "40e9993a9711cba5fb56dfec81a507fabeba9668")