From d828e5f94255c799cf7ecb4bbe5cbc00828fbfdb Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 20 Jul 2013 12:29:02 -0700 Subject: [PATCH] image-dired.el: use with-current-buffer * lisp/image-dired.el (image-dired-track-original-file): Use with-current-buffer. (image-dired-track-thumbnail): Use with-current-buffer. Avoid changing point of wrong window. --- lisp/ChangeLog | 5 +++++ lisp/image-dired.el | 46 +++++++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 83c33768fe5..95b4a2a2b6f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -5,6 +5,11 @@ (def-gdb-preempt-display-buffer): Add explicit format. * image-dired.el (image-dired-track-original-file): + Use with-current-buffer. + (image-dired-track-thumbnail): Use with-current-buffer. + Avoid changing point of wrong window. + + * image-dired.el (image-dired-track-original-file): Avoid changing point of wrong window. (Bug#14909) 2013-07-20 Richard Copley (tiny change) diff --git a/lisp/image-dired.el b/lisp/image-dired.el index b196bf77671..f26ad5dcd0e 100644 --- a/lisp/image-dired.el +++ b/lisp/image-dired.el @@ -1039,16 +1039,14 @@ With prefix argument ARG, remove tag from file at point." See documentation for `image-dired-toggle-movement-tracking'. Interactive use only useful if `image-dired-track-movement' is nil." (interactive) - (let* ((old-buf (current-buffer)) - (dired-buf (image-dired-associated-dired-buffer)) + (let* ((dired-buf (image-dired-associated-dired-buffer)) (file-name (image-dired-original-file-name)) (window (image-dired-get-buffer-window dired-buf))) - (when (and (buffer-live-p dired-buf) file-name) - (set-buffer dired-buf) - (if (not (dired-goto-file file-name)) - (message "Could not track file") - (if window (set-window-point window (point)))) - (set-buffer old-buf)))) + (and (buffer-live-p dired-buf) file-name + (with-current-buffer dired-buf + (if (not (dired-goto-file file-name)) + (message "Could not track file") + (if window (set-window-point window (point)))))))) (defun image-dired-toggle-movement-tracking () "Turn on and off `image-dired-track-movement'. @@ -1065,24 +1063,22 @@ position in the other buffer." This is almost the same as what `image-dired-track-original-file' does, but the other way around." (let ((file (dired-get-filename)) - (old-buf (current-buffer)) - prop-val found) + prop-val found window) (when (get-buffer image-dired-thumbnail-buffer) - (set-buffer image-dired-thumbnail-buffer) - (goto-char (point-min)) - (while (and (not (eobp)) - (not found)) - (if (and (setq prop-val - (get-text-property (point) 'original-file-name)) - (string= prop-val file)) - (setq found t)) - (if (not found) - (forward-char 1))) - (when found - (set-window-point - (image-dired-thumbnail-window) (point)) - (image-dired-display-thumb-properties)) - (set-buffer old-buf)))) + (with-current-buffer image-dired-thumbnail-buffer + (goto-char (point-min)) + (while (and (not (eobp)) + (not found)) + (if (and (setq prop-val + (get-text-property (point) 'original-file-name)) + (string= prop-val file)) + (setq found t)) + (if (not found) + (forward-char 1))) + (when found + (if (setq window (image-dired-thumbnail-window)) + (set-window-point window (point))) + (image-dired-display-thumb-properties)))))) (defun image-dired-dired-next-line (&optional arg) "Call `dired-next-line', then track thumbnail. -- 2.11.4.GIT