1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2025-02-04 04:47:34 +01:00

- forced scrolling to the last message when a new message has been posted on the chat window;

- added 'message-window-lock-scrolling' and 'message-window-unlock-scrolling' allowing users to choose their preferered way to render the gemini text (this is useful for gemini streaming services, like chat or similar).
This commit is contained in:
cage 2021-10-08 11:55:16 +02:00
parent 9568b88e8d
commit 40f6f0642a
5 changed files with 24 additions and 1 deletions

View File

@ -173,6 +173,10 @@
(define-key "M-up" #'pass-focus-on-top)
(define-key "M-l" #'message-window-lock-scrolling)
(define-key "M-u" #'message-window-unlock-scrolling)
;; focus
(define-key "f1" #'focus-to-tags-window)

View File

@ -135,6 +135,8 @@
(defgeneric select-first-row (object))
(defgeneric adjust-selected-rows (object strategy))
(defgeneric selected-row (object))
(defgeneric selected-row-fields (object))
@ -241,6 +243,10 @@
height))))))
window)
(defmethod adjust-selected-rows ((object row-oriented-widget) (strategy function))
(funcall strategy object)
object)
(defmethod selected-row ((object row-oriented-widget))
"Return the current selected row"
(with-accessors ((rows rows)

View File

@ -1935,6 +1935,7 @@
:unselect-all
:select-row
:select-first-row
:adjust-selected-rows
:adjust-rows-noop
:adjust-rows-select-first
:adjust-rows-select-last
@ -2702,7 +2703,9 @@
:gempub-library-window-go-up
:gempub-library-window-go-down
:gempub-library-window-close
:gempub-open-file))
:gempub-open-file
:message-window-lock-scrolling
:message-window-unlock-scrolling))
(defpackage :scheduled-events
(:use

View File

@ -1491,6 +1491,8 @@
(message-window:scroll-end specials:*message-window*)
(setf (message-window:metadata specials:*message-window*)
chat)
(line-oriented-window:adjust-selected-rows specials:*message-window*
#'line-oriented-window:adjust-rows-select-last)
(windows:draw specials:*message-window*))))
(defclass chat-post-message-event (program-event)

View File

@ -2274,3 +2274,11 @@ gemini page the program is rendering."
(when-let* ((fields (line-oriented-window:selected-row-fields *gempub-library-window*))
(iri-to-open (db:row-local-uri fields)))
(gemini-viewer:load-gemini-url iri-to-open :give-focus-to-message-window t)))
(defun message-window-lock-scrolling ()
(setf (message-window:adjust-rows-strategy specials:*message-window*)
#'line-oriented-window:adjust-rows-noop))
(defun message-window-unlock-scrolling ()
(setf (message-window:adjust-rows-strategy specials:*message-window*)
#'line-oriented-window:adjust-rows-select-last))