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:
parent
9568b88e8d
commit
40f6f0642a
@ -173,6 +173,10 @@
|
|||||||
|
|
||||||
(define-key "M-up" #'pass-focus-on-top)
|
(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
|
;; focus
|
||||||
|
|
||||||
(define-key "f1" #'focus-to-tags-window)
|
(define-key "f1" #'focus-to-tags-window)
|
||||||
|
@ -135,6 +135,8 @@
|
|||||||
|
|
||||||
(defgeneric select-first-row (object))
|
(defgeneric select-first-row (object))
|
||||||
|
|
||||||
|
(defgeneric adjust-selected-rows (object strategy))
|
||||||
|
|
||||||
(defgeneric selected-row (object))
|
(defgeneric selected-row (object))
|
||||||
|
|
||||||
(defgeneric selected-row-fields (object))
|
(defgeneric selected-row-fields (object))
|
||||||
@ -241,6 +243,10 @@
|
|||||||
height))))))
|
height))))))
|
||||||
window)
|
window)
|
||||||
|
|
||||||
|
(defmethod adjust-selected-rows ((object row-oriented-widget) (strategy function))
|
||||||
|
(funcall strategy object)
|
||||||
|
object)
|
||||||
|
|
||||||
(defmethod selected-row ((object row-oriented-widget))
|
(defmethod selected-row ((object row-oriented-widget))
|
||||||
"Return the current selected row"
|
"Return the current selected row"
|
||||||
(with-accessors ((rows rows)
|
(with-accessors ((rows rows)
|
||||||
|
@ -1935,6 +1935,7 @@
|
|||||||
:unselect-all
|
:unselect-all
|
||||||
:select-row
|
:select-row
|
||||||
:select-first-row
|
:select-first-row
|
||||||
|
:adjust-selected-rows
|
||||||
:adjust-rows-noop
|
:adjust-rows-noop
|
||||||
:adjust-rows-select-first
|
:adjust-rows-select-first
|
||||||
:adjust-rows-select-last
|
:adjust-rows-select-last
|
||||||
@ -2702,7 +2703,9 @@
|
|||||||
:gempub-library-window-go-up
|
:gempub-library-window-go-up
|
||||||
:gempub-library-window-go-down
|
:gempub-library-window-go-down
|
||||||
:gempub-library-window-close
|
:gempub-library-window-close
|
||||||
:gempub-open-file))
|
:gempub-open-file
|
||||||
|
:message-window-lock-scrolling
|
||||||
|
:message-window-unlock-scrolling))
|
||||||
|
|
||||||
(defpackage :scheduled-events
|
(defpackage :scheduled-events
|
||||||
(:use
|
(:use
|
||||||
|
@ -1491,6 +1491,8 @@
|
|||||||
(message-window:scroll-end specials:*message-window*)
|
(message-window:scroll-end specials:*message-window*)
|
||||||
(setf (message-window:metadata specials:*message-window*)
|
(setf (message-window:metadata specials:*message-window*)
|
||||||
chat)
|
chat)
|
||||||
|
(line-oriented-window:adjust-selected-rows specials:*message-window*
|
||||||
|
#'line-oriented-window:adjust-rows-select-last)
|
||||||
(windows:draw specials:*message-window*))))
|
(windows:draw specials:*message-window*))))
|
||||||
|
|
||||||
(defclass chat-post-message-event (program-event)
|
(defclass chat-post-message-event (program-event)
|
||||||
|
@ -2274,3 +2274,11 @@ gemini page the program is rendering."
|
|||||||
(when-let* ((fields (line-oriented-window:selected-row-fields *gempub-library-window*))
|
(when-let* ((fields (line-oriented-window:selected-row-fields *gempub-library-window*))
|
||||||
(iri-to-open (db:row-local-uri fields)))
|
(iri-to-open (db:row-local-uri fields)))
|
||||||
(gemini-viewer:load-gemini-url iri-to-open :give-focus-to-message-window t)))
|
(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))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user