I get the following error when calling menu-popup (cmucl 19d, gtk+ 2.10.13). Am I just doing something wrong here?
Function that generates the error follows.

Error in function PCL::FIND-CLASS-FROM-CELL:  No class named NIL.
   [Condition of type SIMPLE-ERROR]

Restarts:
  0: [ABORT] Return to Top-Level.

Backtrace:
  0: (PCL::FIND-CLASS-FROM-CELL NIL NIL T)
  1: ((METHOD GFFI:MAKE-PROXY-INSTANCE NIL (SYMBOL T)) #<#1=unused-arg> #<#1#> NIL #.(SYSTEM:INT-SAP #x08108990) ...)
  2: (GFFI:ENSURE-PROXY-INSTANCE GDK:EVENT #.(SYSTEM:INT-SAP #x08108990) :REFERENCE NIL ...)
  3: (GLIB::CALLBACK-TRAMPOLINE #<Function GLIB::INVOKE-SIGNAL-HANDLER {58B82671}> 6 2 #.(SYSTEM:INT-SAP #x3FFFC70C) ...)
  4: (GLIB::SIGNAL-HANDLER-MARSHAL 268431660 268431656)
  5: ("call_into_lisp+#x8C [#x8054D3C] /home/srolls/cl/cmucl/bin/lisp")
  6: ("funcall3+#x29 [#x8054B4F] /home/srolls/cl/cmucl/bin/lisp")
  7: ("Foreign function call land")
  8: ("g_closure_invoke+#x11E [#xB7B4EE3F] /home/srolls/local/gtk/lib/libgobject-2.0.so")
  9: ("NIL+#xB7B5DB6A [#xB7B5DB6A] /home/srolls/local/gtk/lib/libgobject-2.0.so")
 10: ("g_signal_emit_valist+#x41D [#xB7B5F106] /home/srolls/local/gtk/lib/libgobject-2.0.so")
 11: ("g_signal_emit+#x29 [#xB7B5F709] /home/srolls/local/gtk/lib/libgobject-2.0.so")
 12: ("NIL+#xB76B520B [#xB76B520B] /home/srolls/local/gtk/lib/libgtk-x11-2.0.so")
 13: ("gtk_main_do_event+#x315 [#xB75AA7EB] /home/srolls/local/gtk/lib/libgtk-x11-2.0.so")
 14: ("NIL+#xB782159C [#xB782159C] /home/srolls/local/gtk/lib/libgdk-x11-2.0.so")
 15: ("g_main_context_dispatch+#x1EC [#xB7BA6FAD] /home/srolls/local/gtk/lib/libglib-2.0.so")
 16: ("NIL+#xB7BAA086 [#xB7BAA086] /home/srolls/local/gtk/lib/libglib-2.0.so")
 17: ("g_main_context_iteration+#x62 [#xB7BAA50E] /home/srolls/local/gtk/lib/libglib-2.0.so")
 18: ("gtk_main_iteration_do+#x33 [#xB75A9381] /home/srolls/local/gtk/lib/libgtk-x11-2.0.so")
 19: (GTK:MAIN-ITERATION-DO NIL)
 20: ("DEFUN MAIN-ITERATE-ALL" #<#1=unused-arg> #<#1#>)[:OPTIONAL]
 21: (LISP::SUB-SERVE-EVENT 0 10000)
 22: (SYSTEM:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL)
 23: (LISP::DO-INPUT #<Stream for Standard Input>)
 24: (LISP::INPUT-CHARACTER #<Stream for Standard Input> NIL (LISP::*EOF*))
 25: (LISP::SYNONYM-IN #<Synonym Stream to SYSTEM:*STDIN*> NIL (LISP::*EOF*))
 26: (LISP::TWO-WAY-IN #<Two-Way Stream, Input = #<Synonym Stream to SYSTEM:*STDIN*>, Output = #<Synonym Stream to SYSTEM:*STDOUT*>> NIL (LISP::*EOF*))
 27: (LISP::SYNONYM-IN #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (LISP::*EOF*))
 28: (READ-CHAR #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (LISP::*EOF*) NIL)
 29: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) T)
 30: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) NIL)
 31: (LISP::READ-PRESERVING-WHITESPACE-INTERNAL 4 #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) ...)[:EXTERNAL]
 32: (LISP::READ-INTERNAL #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) NIL)
 33: (READ #<Synonym Stream to SWANK::*CURRENT-STANDARD-INPUT*> NIL (:EOF) NIL)
 34: (LISP::%TOP-LEVEL)
 35: ((LABELS LISP::RESTART-LISP SAVE-LISP))



(defun popup-test()
  (let ((window (make-instance
                 'gtk:window
                 :title "popup-test"
                 :visible t
                 :show-children t))
        (ui (make-instance
             'gtk:ui-manager
             :ui '((:popup "Popup"
                    (:menuitem "PopupTest")))
             :action-group
             (make-instance
              'gtk:action-group
              :name "TestActions"
              :action (make-instance
                       'gtk:action
                       :name "PopupTest"
                       :label "Popup test"
                       :callback #'(lambda()
                                           (make-instance
                                           'gtk:message-dialog
                                           :message-type :info
                                           :visible t
                                           :text "Popup Test"
                                           :signal (list :ok #'gtk:widget-destroy
                                                         :object t))))))))
    (gtk:widget-add-events window '(:button-press :button-release))
    (gtk:signal-connect
     window "event"
     #'(lambda(widget event)
         (declare (ignore widget))
         (typecase event
           (gdk:button-press-event
            (gtk:menu-popup
             (gtk:ui-manager-get-widget ui "/Popup")
             (gdk:event-button event)
             (gdk:event-time event)))))
     :object t)))


Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.