mirror of https://codeberg.org/cage/tinmop/
- ensured only an instance of gemini TOC, gemini link and chat window could exixts.
This commit is contained in:
parent
a1ec070d03
commit
0e9c521fc1
|
@ -100,6 +100,7 @@
|
|||
|
||||
(defun open-toc-window (gemini-window)
|
||||
(let* ((low-level-window (make-croatoan-window :enable-function-keys t)))
|
||||
(maybe-close-window *gemini-toc-window*)
|
||||
(setf *gemini-toc-window*
|
||||
(make-instance 'gemini-toc-window
|
||||
:title (_ "Table of contents")
|
||||
|
|
|
@ -197,7 +197,10 @@
|
|||
(ui:error-message (_ "Invalid regular expression")))))
|
||||
|
||||
(defun init-gemini-links (links &key (title (_ "Links")) (center-position nil))
|
||||
"Note that no more that one link window can be presents on the
|
||||
screen."
|
||||
(let* ((low-level-window (make-croatoan-window :enable-function-keys t)))
|
||||
(maybe-close-window *open-message-link-window*)
|
||||
(setf *open-message-link-window*
|
||||
(make-instance 'open-gemini-document-link-window
|
||||
:center-position center-position
|
||||
|
@ -284,6 +287,7 @@
|
|||
|
||||
(defun init-chat-links (links)
|
||||
(let* ((low-level-window (make-croatoan-window :enable-function-keys t)))
|
||||
(maybe-close-window *open-message-link-window*)
|
||||
(setf *open-message-link-window*
|
||||
(make-instance 'open-chat-document-link-window
|
||||
:top-row-padding 0
|
||||
|
|
|
@ -1788,6 +1788,7 @@
|
|||
:win-fgcolor
|
||||
:win-refresh
|
||||
:win-close
|
||||
:maybe-close-window
|
||||
:win-raise-to-top
|
||||
:win-move-cursor
|
||||
:win-move-cursor-direction
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
(win-show object))
|
||||
|
||||
(defmethod print-object ((object wrapper-window) stream)
|
||||
(print-unreadable-object (object stream :type t :identity nil)))
|
||||
(print-unreadable-object (object stream :type t :identity t)))
|
||||
|
||||
(defmacro with-croatoan-window ((slot window) &body body)
|
||||
`(with-accessors ((,slot croatoan-window)) ,window
|
||||
|
@ -167,6 +167,12 @@ height, position and so on)"
|
|||
(stack-remove-element *window-stack* window)
|
||||
(close croatoan-window)))
|
||||
|
||||
(defun maybe-close-window (win)
|
||||
"close `win' if it is a wrapper-window"
|
||||
(and win
|
||||
(typep win 'wrapper-window)
|
||||
(win-close win)))
|
||||
|
||||
(defun win-raise-to-top (window)
|
||||
(stack-raise-to-top *window-stack* window))
|
||||
|
||||
|
|
Loading…
Reference in New Issue