From 0f152c4e3b437f6bbdf1c79e6f7c0433f121f550 Mon Sep 17 00:00:00 2001 From: espen Date: Sat, 4 Dec 2004 00:29:57 +0000 Subject: [PATCH] Made signal-connect accept NIL as callback function --- glib/gcallback.lisp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/glib/gcallback.lisp b/glib/gcallback.lisp index 5255221..462f5aa 100644 --- a/glib/gcallback.lisp +++ b/glib/gcallback.lisp @@ -15,7 +15,7 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gcallback.lisp,v 1.14 2004-11-07 16:04:21 espen Exp $ +;; $Id: gcallback.lisp,v 1.15 2004-12-04 00:29:57 espen Exp $ (in-package "GLIB") @@ -160,15 +160,16 @@ function, or if :OBJECT is any other non NIL value, it is passed as the first argument instead. If :AFTER is non NIL, the handler will be called after the default handler of the signal." - (let ((callback-id - (make-callback-closure - (cond - ((or (eq object t) (eq object gobject)) function) - ((not object) - #'(lambda (&rest args) (apply function (cdr args)))) - (t - #'(lambda (&rest args) (apply function object (rest args)))))))) - (signal-connect-closure gobject signal callback-id :after after))) + (when function + (let ((callback-id + (make-callback-closure + (cond + ((or (eq object t) (eq object gobject)) function) + ((not object) + #'(lambda (&rest args) (apply function (cdr args)))) + (t + #'(lambda (&rest args) (apply function object (rest args)))))))) + (signal-connect-closure gobject signal callback-id :after after)))) ;;; Message logging -- 2.11.0