mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 20:38:08 +01:00
emacs: Fix column alignment in `notmuch-hello-insert-tags'
Re-working the saved search/tag insertion to buttonize only the name of the saved search/tag plus one space broke the calculation of how much filler is required to complete the column, resulting in lines wider than the window.
This commit is contained in:
parent
c210d5632e
commit
1e18711543
1 changed files with 27 additions and 17 deletions
|
@ -148,8 +148,9 @@ diagonal."
|
||||||
(defun notmuch-hello-insert-tags (tag-alist widest target)
|
(defun notmuch-hello-insert-tags (tag-alist widest target)
|
||||||
(let* ((tags-per-line (max 1
|
(let* ((tags-per-line (max 1
|
||||||
(/ (- (window-width) notmuch-hello-indent)
|
(/ (- (window-width) notmuch-hello-indent)
|
||||||
;; Count is 7 wide, 1 for the space
|
;; Count is 7 wide (6 digits plus
|
||||||
;; after the name.
|
;; space), 1 for the space after the
|
||||||
|
;; name.
|
||||||
(+ 7 1 widest))))
|
(+ 7 1 widest))))
|
||||||
(count 0)
|
(count 0)
|
||||||
(reordered-list (notmuch-hello-reflect tag-alist tags-per-line))
|
(reordered-list (notmuch-hello-reflect tag-alist tags-per-line))
|
||||||
|
@ -159,21 +160,30 @@ diagonal."
|
||||||
(found-target-pos nil))
|
(found-target-pos nil))
|
||||||
;; dme: It feels as though there should be a better way to
|
;; dme: It feels as though there should be a better way to
|
||||||
;; implement this loop than using an incrementing counter.
|
;; implement this loop than using an incrementing counter.
|
||||||
(loop for elem in reordered-list
|
(mapc (lambda (elem)
|
||||||
do (progn
|
|
||||||
;; (not elem) indicates an empty slot in the matrix.
|
;; (not elem) indicates an empty slot in the matrix.
|
||||||
(when elem
|
(when elem
|
||||||
(widget-insert (format "%6s " (notmuch-saved-search-count (cdr elem))))
|
(let* ((name (car elem))
|
||||||
(if (string= (format "%s " (car elem)) target)
|
(query (cdr elem))
|
||||||
|
(formatted-name (format "%s " name)))
|
||||||
|
(widget-insert (format "%6s " (notmuch-saved-search-count query)))
|
||||||
|
(if (string= formatted-name target)
|
||||||
(setq found-target-pos (point-marker)))
|
(setq found-target-pos (point-marker)))
|
||||||
(widget-create 'push-button
|
(widget-create 'push-button
|
||||||
:notify #'notmuch-hello-widget-search
|
:notify #'notmuch-hello-widget-search
|
||||||
:notmuch-search-terms (cdr elem)
|
:notmuch-search-terms query
|
||||||
(format "%s " (car elem)))
|
formatted-name)
|
||||||
(insert (make-string (1+ (- widest (length (car elem)))) ? )))
|
;; Insert enough space to consume the rest of the
|
||||||
|
;; column. Because the button for the name is `(1+
|
||||||
|
;; (length name))' long (due to the trailing space) we
|
||||||
|
;; can just insert `(- widest (length name))' spaces -
|
||||||
|
;; the column separator is included in the button if
|
||||||
|
;; `(equal widest (length name)'.
|
||||||
|
(widget-insert (make-string (- widest (length name)) ? )))
|
||||||
(setq count (1+ count))
|
(setq count (1+ count))
|
||||||
(if (eq (% count tags-per-line) 0)
|
(if (eq (% count tags-per-line) 0)
|
||||||
(widget-insert "\n"))))
|
(widget-insert "\n"))))
|
||||||
|
reordered-list)
|
||||||
|
|
||||||
;; If the last line was not full (and hence did not include a
|
;; If the last line was not full (and hence did not include a
|
||||||
;; carriage return), insert one now.
|
;; carriage return), insert one now.
|
||||||
|
|
Loading…
Reference in a new issue