1
0
Fork 0

- [gemini] ensured TOC is rendered only for rendering stream.

This commit is contained in:
cage 2021-05-16 15:38:26 +02:00
parent 8423ca7d38
commit 6ecc3fc5a0
2 changed files with 14 additions and 5 deletions

View File

@ -343,6 +343,9 @@
(labels ((maybe-render-line (line-event)
(when (eq (stream-status wrapper-object) :rendering)
(program-events:push-event line-event)))
(maybe-render-toc ()
(when (eq (stream-status wrapper-object) :rendering)
(ui:open-gemini-toc)))
(maybe-render-preformat-wrapper (file-stream wrapper-object)
(when (not gemini-format-p)
(let* ((preformat-line (format nil "~a~%" gemini-parser:+preformatted-prefix+))
@ -404,7 +407,7 @@
(ui:notify (_ "Gemini document downloading aborted"))
(progn
(ui:notify (_ "Gemini document downloading completed"))
(ui:open-gemini-toc)
(maybe-render-toc)
(setf (stream-status wrapper-object) :completed)))
;; (allow-downloading wrapper-object)
(gemini-client:close-ssl-socket download-socket))))))))

View File

@ -1279,10 +1279,16 @@
(defclass gemini-toc-open (program-event) ())
(defmethod process-event ((object gemini-toc-open))
(let ((win specials:*message-window*))
(if (message-window:gemini-window-p* win)
(gemini-page-toc:open-toc-window win)
(ui:error-message (_ "TOC can be shown for gemini windows only.")))))
(let ((message-win specials:*message-window*)
(toc-win specials:*gemini-toc-window*))
(cond
((not (message-window:gemini-window-p* message-win))
(ui:error-message (_ "TOC can be shown for gemini windows only.")))
((and toc-win
(windows:win-shown-p toc-win))
(ui:error-message (_ "Window already active.")))
(t
(gemini-page-toc:open-toc-window message-win)))))
;;;; pleroma