From 337dcee989689b3f7727581f69939f7947cfca8d Mon Sep 17 00:00:00 2001 From: Tadashi MATSUO Date: Wed, 5 May 2010 15:05:46 +0900 Subject: [PATCH] Avoid unintended cursor motion caused by `url-retrieve'. * twittering-mode.el: Use a dummy buffer to prevent the cursor from moving without intention after invoking `url-retrieve'. (twittering-url-request-dummy-buffer-name): new constant for dummy buffer. (twittering-resolve-url-request): switch to the dummy buffer just after killing the content buffer generated by `url-retrieve'. This prevents multiple threads from having different cursor points for the same buffer. --- ChangeLog | 11 +++++++++++ twittering-mode.el | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c1e9dddd..25608a34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-05-05 Tadashi MATSUO + + * twittering-mode.el: Use a dummy buffer to prevent the cursor + from moving without intention after invoking `url-retrieve'. + (twittering-url-request-dummy-buffer-name): new constant for dummy + buffer. + (twittering-resolve-url-request): switch to the dummy buffer just + after killing the content buffer generated by `url-retrieve'. This + prevents multiple threads from having different cursor points for + the same buffer. + 2010-05-05 Takashi Masuda * twittering-mode.el: twittering-jojo-mode の判定ミスを修正。 diff --git a/twittering-mode.el b/twittering-mode.el index aa36aded..84d240c2 100644 --- a/twittering-mode.el +++ b/twittering-mode.el @@ -2368,6 +2368,8 @@ been initialized yet." (defvar twittering-internal-url-queue nil) (defvar twittering-url-request-resolving-p nil) (defvar twittering-url-request-retry-limit 3) +(defconst twittering-url-request-dummy-buffer-name + " *twittering-dummy-for-url-retrieve-async*") (defun twittering-remove-redundant-queries (queue) (remove nil @@ -2429,7 +2431,10 @@ been initialized yet." (puthash url (1+ current) twittering-url-data-hash)) (t nil)))) - (kill-buffer (current-buffer)) + (let ((current (current-buffer))) + (set-buffer (get-buffer-create + twittering-url-request-dummy-buffer-name)) + (kill-buffer current)) (setq twittering-url-request-resolving-p nil) (twittering-resolve-url-request))) `(,url))))))