summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/frameset.el8
2 files changed, 11 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 31736838097..ab358fdb071 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-11 Juanma Barranquero <lekktu@gmail.com>
+
+ * frameset.el (frameset--jump-to-register): Select the required
+ window and buffer before restoring position (bug#16696).
+
2014-02-11 Lars Ingebrigtsen <larsi@gnus.org>
* dired.el (dired-get-marked-files): Clarify doc (bug#11534).
diff --git a/lisp/frameset.el b/lisp/frameset.el
index 7b8d613b836..aa8bb196fff 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -522,7 +522,6 @@ It must return:
Frame parameters not on this alist are passed intact, as if they were
defined with ACTION = nil.")
-
(defvar frameset--target-display nil
;; Either (minibuffer . VALUE) or nil.
;; This refers to the current frame config being processed inside
@@ -1217,7 +1216,12 @@ Called from `jump-to-register'. Internal use only."
(let ((frame (frameset-frame-with-id (aref data 1))))
(when frame
(select-frame-set-input-focus frame)
- (goto-char (aref data 2))))))
+ (let* ((position (aref data 2))
+ (buffer (marker-buffer position))
+ (window (get-buffer-window buffer frame)))
+ (when (and window (window-live-p window))
+ (set-frame-selected-window frame window)
+ (with-current-buffer buffer (goto-char position))))))))
;;;###autoload
(defun frameset-to-register (register)