X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gtk%2Fgtk.misc.lisp;h=fbfaa776d21b9e9e2aad62ff7cdd7053cab62bdf;hb=9f4a86e68709db2385207633cbecd315688c87c5;hp=81dd06d5003059938d847e09b47fa4d5b1bd8481;hpb=9f7be1143bc6087d6eb607a12f99b062663b33dd;p=cl-gtk2.git diff --git a/gtk/gtk.misc.lisp b/gtk/gtk.misc.lisp index 81dd06d..fbfaa77 100644 --- a/gtk/gtk.misc.lisp +++ b/gtk/gtk.misc.lisp @@ -19,11 +19,26 @@ (g-idle-add-full priority (callback call-from-main-loop-callback) (allocate-stable-pointer function) - (callback stable-pointer-free-destroy-notify-callback))) + (callback stable-pointer-free-destroy-notify-callback)) + (ensure-gtk-main)) (export 'call-from-gtk-main-loop) (defmacro within-main-loop (&body body) `(call-from-gtk-main-loop (lambda () ,@body))) -(export 'within-main-loop) \ No newline at end of file +(export 'within-main-loop) + +#+thread-support +(defmacro with-main-loop (&body body) + `(progn + (ensure-gtk-main) + (within-main-loop ,@body))) + +#-thread-support +(defmacro with-main-loop (&body body) + `(progn + ,@body + (gtk-main))) + +(export 'with-main-loop) \ No newline at end of file