X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/e69e261866aaac26d68697d2b36e1783be232c1c..c472ac67a24ba5609b0fcebf893bbdf685b8fd96:/glib/gcallback.lisp diff --git a/glib/gcallback.lisp b/glib/gcallback.lisp index 329bb60..357535d 100644 --- a/glib/gcallback.lisp +++ b/glib/gcallback.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gcallback.lisp,v 1.46 2007-08-20 11:15:13 espen Exp $ +;; $Id: gcallback.lisp,v 1.49 2008-04-11 20:51:45 espen Exp $ (in-package "GLIB") @@ -170,7 +170,7 @@ (defbinding signal-lookup (name type) unsigned-int ((signal-name-to-string name) string) ((find-type-number type t) type-number)) -(defbinding signal-name () (copy-of string) +(defbinding signal-name () (or null (copy-of string)) (signal-id unsigned-int)) (defbinding signal-list-ids (type) (vector unsigned-int n-ids) @@ -244,6 +244,8 @@ (defun describe-signal (signal-id &optional type) ;;;; Signal connecting and controlling +(define-flags-type connect-flags :after :swapped) + (defvar *overridden-signals* (make-hash-table :test 'equalp)) (defbinding %signal-override-class-closure () nil @@ -504,7 +506,7 @@ (defun create-signal-emit-function (signal-id) finally (if return-type (return - (with-gvalue (return-value) + (with-gvalue (return-value return-type) (%signal-emitv params signal-id detail return-value))) (%signal-emitv params signal-id detail (make-pointer 0)))) (loop