all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Juri Linkov <juri@linkov.net>
To: martin rudalics <rudalics@gmx.at>
Cc: 33871@debbugs.gnu.org
Subject: bug#33871: 27.0.50; Revert Dired window saved in window configuration
Date: Wed, 21 Feb 2024 19:18:17 +0200	[thread overview]
Message-ID: <86v86hwxbe.fsf@mail.linkov.net> (raw)
In-Reply-To: <bcaea0d2-37ca-47e5-8a1f-29f293bec2cf@gmx.at> (martin rudalics's message of "Wed, 21 Feb 2024 10:05:11 +0100")

>> (setq-default window-use-context-function
>>                (lambda (w context)
>>                  (let ((point (window-point w)))
>>                    (with-current-buffer (window-buffer w)
>
> I suppose that in the general case you need a
>
> (save-excursion

Thanks.  I just noticed this is broken in two windows case,
and your suggestion fixed it.

> Probably something similar is needed for dired, for example to handle
> the case where its buffer is simultaneously shown in two windows with
> their points on different lines.

So here is the same for dired:

diff --git a/lisp/dired.el b/lisp/dired.el
index 9e3b888df14..0510db1c409 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2743,6 +2745,26 @@ dired-mode
               '(dired-font-lock-keywords t nil nil beginning-of-line))
   (setq-local desktop-save-buffer 'dired-desktop-buffer-misc-data)
   (setq-local grep-read-files-function #'dired-grep-read-files)
+  (setq-local window-set-context-function
+              (lambda (w)
+                (let ((point (window-point w)))
+                  (with-current-buffer (window-buffer w)
+                    (save-excursion
+                      (goto-char point)
+                      (if-let ((f (dired-get-filename nil t)))
+                          `((dired-filename . ,f))
+                        `((position . ,(point)))))))))
+  (setq-local window-use-context-function
+              (lambda (w context)
+                (let ((point (window-point w)))
+                  (with-current-buffer (window-buffer w)
+                    (save-excursion
+                      (if-let ((f (alist-get 'dired-filename context)))
+                          (dired-goto-file f)
+                        (when-let ((p (alist-get 'position context)))
+                          (goto-char p)))
+                      (setq point (point))))
+                  (set-window-point w point))))
   (setq dired-switches-alist nil)
   (hack-dir-local-variables-non-file-buffer) ; before sorting
   (dired-sort-other dired-actual-switches t)





  reply	other threads:[~2024-02-21 17:18 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-25 21:39 bug#33871: 27.0.50; Revert Dired window saved in window configuration Juri Linkov
2018-12-26  9:43 ` martin rudalics
2018-12-27  0:01   ` Juri Linkov
2018-12-27  9:37     ` martin rudalics
2018-12-27 21:34       ` Juri Linkov
2018-12-28  8:34         ` martin rudalics
2018-12-29 11:19           ` Markus Triska
2018-12-29 18:18             ` martin rudalics
2018-12-29 23:21           ` Juri Linkov
2018-12-30  9:52             ` martin rudalics
2018-12-30 14:57               ` martin rudalics
2018-12-30 21:29               ` Juri Linkov
2022-02-12  8:45 ` Lars Ingebrigtsen
2022-02-13 18:40   ` Juri Linkov
2022-02-14  9:13     ` martin rudalics
2022-02-14 18:10       ` Juri Linkov
2022-02-14 18:36         ` martin rudalics
2022-02-15 19:30           ` Juri Linkov
2022-02-16  8:50             ` martin rudalics
2022-02-16 18:34               ` Juri Linkov
2022-02-17 10:05                 ` martin rudalics
2022-02-17 17:28                   ` Juri Linkov
2022-02-19  9:37                     ` martin rudalics
2022-02-19 17:08                       ` Juri Linkov
2022-02-19 17:22                         ` martin rudalics
2022-02-20 18:40                           ` Juri Linkov
2022-02-21  9:07                             ` martin rudalics
2022-02-22 17:14                               ` Juri Linkov
2022-02-23  9:31                                 ` martin rudalics
2022-02-23 17:53                                   ` Juri Linkov
2022-02-24  9:19                                     ` martin rudalics
2024-02-16  7:37                                       ` Juri Linkov
2024-02-16  9:41                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-18  7:39                                           ` Juri Linkov
2024-02-19  9:42                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-20  7:45                                               ` Juri Linkov
2024-02-21  9:05                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-21 17:18                                                   ` Juri Linkov [this message]
2024-03-20 17:27                                                   ` Juri Linkov
2024-03-21  9:20                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-21 17:54                                                       ` Juri Linkov
2024-03-22  9:26                                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-22 16:15                                                           ` Juri Linkov
2024-03-23  9:14                                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-23 18:31                                                               ` Juri Linkov
2024-03-24  9:54                                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-24 17:12                                                                   ` Juri Linkov
2024-03-25  9:41                                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-25 17:10                                                                       ` Juri Linkov
2024-03-26  9:55                                                                         ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-28  7:40                                                                           ` Juri Linkov
2024-03-28  9:18                                                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-28 17:54                                                                               ` Juri Linkov
2024-03-29  8:45                                                                                 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-29 16:25                                                                                   ` Juri Linkov
2024-03-30  9:36                                                                                     ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-03-30 18:19                                                                                       ` Juri Linkov
2024-04-02 17:19                                                                                         ` Juri Linkov
2024-04-09  6:44                                           ` Juri Linkov
2024-04-09  9:05                                             ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86v86hwxbe.fsf@mail.linkov.net \
    --to=juri@linkov.net \
    --cc=33871@debbugs.gnu.org \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.