1
0
Fork 0

Merge branch 'master' into gemini-client-cert

This commit is contained in:
cage 2020-10-11 18:58:52 +02:00
commit 0fd83f7745
1 changed files with 25 additions and 21 deletions

View File

@ -973,6 +973,19 @@
:reader skip-rendering-p :reader skip-rendering-p
:writer (setf skip-rendering)))) :writer (setf skip-rendering))))
(defun refresh-gemini-message-window (links source rendered-text append-text)
(let* ((win specials:*message-window*)
(window-metadata (message-window:metadata win)))
(if append-text
(progn
(message-window:append-source-text win rendered-text :prepare-for-rendering t)
(gemini-viewer:append-metadata-link window-metadata links)
(gemini-viewer:append-metadata-source window-metadata source))
(progn
(setf (message-window:source-text win) rendered-text)
(setf (gemini-viewer:gemini-metadata-source-file window-metadata) rendered-text)
(setf (gemini-viewer:gemini-metadata-links window-metadata) links)))))
(defmethod process-event ((object gemini-got-line-event)) (defmethod process-event ((object gemini-got-line-event))
(with-accessors ((response payload) (with-accessors ((response payload)
(append-text append-text) (append-text append-text)
@ -989,19 +1002,10 @@
(not (skip-rendering-p object))) (not (skip-rendering-p object)))
(let* ((win specials:*message-window*) (let* ((win specials:*message-window*)
(rendered-line (gemini-parser:sexp->text parsed-file (rendered-line (gemini-parser:sexp->text parsed-file
text-rendering-theme)) text-rendering-theme)))
(window-metadata (message-window:metadata win))) (setf (windows:keybindings win)
(if append-text keybindings:*gemini-message-keymap*)
(progn (refresh-gemini-message-window links source rendered-line append-text)
(message-window:append-source-text win rendered-line :prepare-for-rendering t)
(gemini-viewer:append-metadata-link window-metadata links)
(gemini-viewer:append-metadata-source window-metadata source)
(setf (windows:keybindings win)
keybindings:*gemini-message-keymap*))
(progn
(setf (message-window:source-text win) rendered-line)
(setf (gemini-viewer:gemini-metadata-source-file window-metadata) rendered-line)
(setf (gemini-viewer:gemini-metadata-links window-metadata) links)))
(windows:draw win)))))) (windows:draw win))))))
(defclass gemini-compact-lines-event (program-event) (defclass gemini-compact-lines-event (program-event)
@ -1012,9 +1016,10 @@
(defmethod process-event ((object gemini-compact-lines-event)) (defmethod process-event ((object gemini-compact-lines-event))
(with-accessors ((download-uri download-uri)) object (with-accessors ((download-uri download-uri)) object
(let ((all-lines "") (let ((all-lines "")
(all-links ()) (all-links ())
(all-source "")) (all-source "")
(append-text t))
(map-events (lambda (a) (map-events (lambda (a)
(with-accessors ((response payload) (with-accessors ((response payload)
(wrapper-object wrapper-object)) a (wrapper-object wrapper-object)) a
@ -1030,6 +1035,8 @@
(not (skip-rendering-p a))) (not (skip-rendering-p a)))
(let ((rendered-text (gemini-parser:sexp->text parsed-file (let ((rendered-text (gemini-parser:sexp->text parsed-file
text-rendering-theme))) text-rendering-theme)))
(when (null (append-text a))
(setf append-text nil))
(appendf all-links links) (appendf all-links links)
(setf all-source (setf all-source
(text-utils:strcat all-source source)) (text-utils:strcat all-source source))
@ -1042,13 +1049,10 @@
(and (typep a 'gemini-got-line-event) (and (typep a 'gemini-got-line-event)
(string= download-uri (string= download-uri
(gemini-viewer:download-uri wrapper-object)))))) (gemini-viewer:download-uri wrapper-object))))))
(let* ((win specials:*message-window*) (let* ((win specials:*message-window*))
(window-metadata (message-window:metadata win)))
(message-window:append-source-text win all-lines :prepare-for-rendering t)
(gemini-viewer:append-metadata-link window-metadata all-links)
(gemini-viewer:append-metadata-source window-metadata all-source)
(setf (windows:keybindings win) (setf (windows:keybindings win)
keybindings:*gemini-message-keymap*) keybindings:*gemini-message-keymap*)
(refresh-gemini-message-window all-links all-source all-lines append-text)
(windows:draw win)))))) (windows:draw win))))))
(defclass gemini-abort-downloading-event (program-event) ()) (defclass gemini-abort-downloading-event (program-event) ())