(set-window-parameter lv-wnd 'no-other-window t))
(select-window ori)))))
+(defvar lv-force-update t
+ "When non-nil, `lv-message' will refresh even for the same string.")
+
(defun lv-message (format-string &rest args)
"Set LV window contents to (`format' FORMAT-STRING ARGS)."
- (let* ((ori (selected-window))
- (str (apply #'format format-string args))
+ (let* ((str (apply #'format format-string args))
(n-lines (cl-count ?\n str))
deactivate-mark
golden-ratio-mode)
- (select-window (lv-window))
- (unless (string= (buffer-string) str)
- (delete-region (point-min) (point-max))
- (insert str)
- (setq-local window-min-height n-lines)
- (setq truncate-lines (> n-lines 1))
- (fit-window-to-buffer nil nil 1))
- (goto-char (point-min))
- (select-window ori)))
+ (with-selected-window (lv-window)
+ (unless (and (string= (buffer-string) str)
+ (null lv-force-update))
+ (delete-region (point-min) (point-max))
+ (insert str)
+ (setq-local window-min-height n-lines)
+ (setq truncate-lines (> n-lines 1))
+ (fit-window-to-buffer nil nil 1))
+ (goto-char (point-min)))))
(defun lv-delete-window ()
"Delete LV window and kill its buffer."