Update of /project/beirc/cvsroot/beirc In directory common-lisp.net:/tmp/cvs-serv17920
Modified Files: receivers.lisp Log Message: Modifies the switch-to-pane :AFTER method of beirc so that it doesn't make the tab-layout unusable for other programs in the same image. It tests first whether the tab-layout-pane is actually the pane of the current beirc *application-frame*.
It's a bit unpleasant that this method will be called for *all* tab-layout-panes in the same image, perhaps there will be a way to hook such things into the tab-layout-pane by means of the WITH-TAB-LAYOUT form.
(This patch is actually 8 days old, see http://paste.lisp.org/display/11924 .)
Date: Sun Oct 2 06:18:25 2005 Author: mretzlaff
Index: beirc/receivers.lisp diff -u beirc/receivers.lisp:1.9 beirc/receivers.lisp:1.10 --- beirc/receivers.lisp:1.9 Fri Sep 30 15:46:18 2005 +++ beirc/receivers.lisp Sun Oct 2 06:18:24 2005 @@ -239,12 +239,16 @@ (t +black+)))))
(defmethod switch-to-pane :after ((pane sheet) (parent (eql 'tab-layout-pane))) - (let ((receiver (receiver-from-tab-pane - (find-in-tab-panes-list pane 'tab-layout-pane)))) - (unless (null receiver) - (setf (unseen-messages receiver) 0) - (setf (messages-directed-to-me receiver) 0) - (update-drawing-options receiver)))) + (let ((my-tab-layout-pane (find-pane-named *application-frame* 'query))) + (when (eq (sheet-parent (sheet-parent pane)) ;; Is this the desired tab-layout? + my-tab-layout-pane) + + (let ((receiver (receiver-from-tab-pane + (find-in-tab-panes-list pane my-tab-layout-pane)))) + (unless (null receiver) + (setf (unseen-messages receiver) 0) + (setf (messages-directed-to-me receiver) 0) + (update-drawing-options receiver))))))
(defun raise-receiver (receiver) (setf (unseen-messages receiver) 0)