aboutsummaryrefslogtreecommitdiff
path: root/sx-question-list.el
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2014-11-26 12:22:34 +0000
committerArtur Malabarba <bruce.connor.am@gmail.com>2014-11-26 12:22:34 +0000
commit244aca25de91f6b6e5e9d59775ab05f0669df80c (patch)
tree14bf81c230f64ad630588d99377d1af7716a7fbc /sx-question-list.el
parente9f03bfb583d514ff9c930c551f8e0760f29a598 (diff)
Preserve visual position when refreshing
Both for question list and question mode.
Diffstat (limited to 'sx-question-list.el')
-rw-r--r--sx-question-list.el20
1 files changed, 11 insertions, 9 deletions
diff --git a/sx-question-list.el b/sx-question-list.el
index 2965ede..bb49b54 100644
--- a/sx-question-list.el
+++ b/sx-question-list.el
@@ -371,19 +371,21 @@ a new list before redisplaying."
(setq sx-question-list--unread-count 0)
(unless no-update
(setq sx-question-list--pages-so-far 1))
- (let ((question-list
- (or (and no-update sx-question-list--dataset)
- (and (functionp sx-question-list--refresh-function)
- (funcall sx-question-list--refresh-function))
- (and (functionp sx-question-list--next-page-function)
- (funcall sx-question-list--next-page-function 1))
- sx-question-list--dataset)))
+ (cl-letf ((question-list
+ (or (and no-update sx-question-list--dataset)
+ (and (functionp sx-question-list--refresh-function)
+ (funcall sx-question-list--refresh-function))
+ (and (functionp sx-question-list--next-page-function)
+ (funcall sx-question-list--next-page-function 1))
+ sx-question-list--dataset))
+ ;; Preserve window positioning.
+ ((window-start)))
(setq sx-question-list--dataset question-list)
;; Print the result.
(setq tabulated-list-entries
(mapcar sx-question-list--print-function
- (cl-remove-if #'sx-question--hidden-p question-list))))
- (when redisplay (tabulated-list-print 'remember)))
+ (cl-remove-if #'sx-question--hidden-p question-list)))
+ (when redisplay (tabulated-list-print 'remember))))
(defcustom sx-question-list-ago-string " ago"
"String appended to descriptions of the time since something happened.