chiark / gitweb /
Added CAIRO-REGION
[clg] / gtk / gtk.lisp
index 0ea17ab3c5ab3b41184c86a864d3692a0c743242..6fb06ffe6a235d2f0539bbdf72cddd80d7246bd8 100644 (file)
@@ -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: gtk.lisp,v 1.80 2007-07-12 13:13:34 espen Exp $
+;; $Id: gtk.lisp,v 1.83 2007-09-06 14:18:56 espen Exp $
 
 
 (in-package "GTK")
@@ -187,12 +187,12 @@   (defun %init-multi-threaded-event-handling (display)
           (find-package "SWANK")
           (not (eq (symbol-value (find-symbol "*COMMUNICATION-STYLE*" "SWANK")) :spawn)))
       (error "When running clg in Slime, the communication style :spawn must be used in combination with multi threaded event handling. See the README file and <http://common-lisp.net/project/slime/doc/html/slime_45.html> for more information."))
+    (gdk:threads-init)  
     (let ((main-running (sb-thread:make-waitqueue)))
       (gdk:with-global-lock
        (setf *main-thread*
         (sb-thread:make-thread 
         #'(lambda () 
-            (gdk:threads-init)  
             (gdk:with-global-lock 
               (gdk:display-open display)
               #+win32(gdk:timeout-add-with-lock (/ *event-poll-interval* 1000)
@@ -206,8 +206,8 @@   (defun %init-multi-threaded-event-handling (display)
     ;; This will *only* protect code entered directly in the REPL.
     (when (find-package "SWANK")
       (push #'(lambda (form) 
-               (within-main-loop (eval form)))
-       swank::*slime-repl-eval-hooks*))))
+               (within-main-loop (eval form)))
+       (symbol-value (find-symbol "*SLIME-REPL-EVAL-HOOKS*" "SWANK"))))))
 
 #-sb-thread
 (defmacro within-main-loop (&body body)
@@ -552,7 +552,7 @@   (defun assistant-prepend-page (assistant page &rest child-args)
   (define-callback-marshal %assistant-page-func-callback int
     ((current-page int)))
 
-  (defbinding assistant-set-forward-func (assistant function) nil
+  (defbinding assistant-set-forward-page-func (assistant function) nil
     (assistant assistant)
     (%assistant-page-func-callback callback)
     ((register-callback-function function) pointer-data)
@@ -1322,7 +1322,7 @@ (defmethod allocate-foreign ((dialog message-dialog) &key (message-type :info)
 
 
 (defmethod shared-initialize ((dialog message-dialog) names &rest initargs
-                             &key buttons text 
+                             &key message-type buttons button text 
                              #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
                              secondary-text)
   (declare (ignore names))
@@ -1331,6 +1331,13 @@ (defmethod shared-initialize ((dialog message-dialog) names &rest initargs
   #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
   (when secondary-text
     (message-dialog-format-secondary-markup dialog secondary-text))
+  (when (and (not buttons) (not button))
+    (loop
+     for (key value) on initargs by #'cddr
+     when (and (eq key :signal) (eq (first value) :close))
+     do (warn "Default button configuration changed from ~A to ~A" :close
+        (if (eq message-type :question) :yes-no :ok))
+        (loop-finish)))
   (if (typep buttons 'buttons-type)
       (apply #'call-next-method dialog names (plist-remove :buttons initargs))
     (call-next-method)))