projects
/
cl-gtk2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix GtkWidget's structure definition
[cl-gtk2.git]
/
gtk
/
gtk.main_loop_events.lisp
diff --git
a/gtk/gtk.main_loop_events.lisp
b/gtk/gtk.main_loop_events.lisp
index
d2bdb9c
..
961b357
100644
(file)
--- a/
gtk/gtk.main_loop_events.lisp
+++ b/
gtk/gtk.main_loop_events.lisp
@@
-17,13
+17,7
@@
(error "Cannot initialize Gtk+"))
(foreign-free (mem-ref argv '(:pointer :string))))))
(error "Cannot initialize Gtk+"))
(foreign-free (mem-ref argv '(:pointer :string))))))
-(gtk-init)
-
-(defcfun gtk-test-register-all-types :void)
-
-(gtk-test-register-all-types)
-
-(defcfun gtk-events-pending :boolean)
+(at-init () (gtk-init))
(defcfun gtk-main :void)
(defcfun gtk-main :void)
@@
-31,15
+25,26
@@
(defvar *main-thread* nil)
#+thread-support
(defvar *main-thread* nil)
#+thread-support
+(at-finalize ()
+ (when (and *main-thread* (bt:thread-alive-p *main-thread*))
+ (bt:destroy-thread *main-thread*)
+ (setf *main-thread* nil)))
+
+#+thread-support
(defun ensure-gtk-main ()
(defun ensure-gtk-main ()
+ (when (and *main-thread* (not (bt:thread-alive-p *main-thread*)))
+ (setf *main-thread* nil))
(unless *main-thread*
(unless *main-thread*
- (setf *main-thread* (bt:make-thread (lambda () (gtk:gtk-main)) :name "cl-gtk2 main thread"))))
+ (setf *main-thread* (bt:make-thread (lambda () (gtk-main)) :name "cl-gtk2 main thread"))))
#+thread-support
(defun join-main-thread ()
(when *main-thread*
(bt:join-thread *main-thread*)))
#+thread-support
(defun join-main-thread ()
(when *main-thread*
(bt:join-thread *main-thread*)))
+#+thread-support
+(export 'join-main-thread)
+
#-thread-support
(defun ensure-gtk-main ()
(gtk-main))
#-thread-support
(defun ensure-gtk-main ()
(gtk-main))