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

他の window で w3m-history-restore-position()



# というわけで、別件

w3m-reload-this-page() を動かしたあと、他の window や frame にいっ
て作業をしていると、まったく w3m と無関係のその buffer 内で
point が動いてしまうことがあります。

w3m-goto-url() の最後の

	      (when (or reload redisplay)
		(w3m-history-restore-position))

で、今いる window が *w3m* じゃなくても set-window-start() され
ちゃうから、ということがわかったのですが、

(defun w3m-history-restore-position ()
  "Restore the saved cursor position in the page.
Even if the page has been shrunk (by reloading, for example), somehow
it works although it may not be perfect."
  (interactive)
  (when (cadar w3m-history)
    (let ((start (w3m-history-plist-get :window-start))
	  position window)
      (cond ((and start
		  (setq position (w3m-history-plist-get :position)))
	     (when (<= start (point-max))
	       (goto-char (min position (point-max)))
	       (setq window (get-buffer-window (current-buffer) 'all-frames))
	       (when window
		 (save-selected-window
		   (select-window window)
		   (set-window-start window start)))))
	    ((interactive-p)
	     (message "No cursor position saved"))))))

な修正で良いでしょうか。待った、がかからなかったら commit してお
きます。

-- 
白井秀行 (mailto:shirai@meadowy.org)