Lisp Knowledgebase

Title: Delivery level 5 breaks saved CAPI window geometry

ID: 17031

Product: LispWorks
Version: 4.3
OS: All

An application which uses capi:top-level-interface-geometry-key to define a registry path for saving on-screen CAPI window geometries works at delivery level 4 but but fails to save its window geometry at delivery level 5.

capi:top-level-interface-geometry-key depends on symbol-name to construct the registry path for saving the on screen geometry of an interface class.

At delivery level 5, symbol names are removed by default. This is a significant saving in size of your application so it is still worth doing, but you can specially keep the symbols needed for the paths, that is the, class names of the interface classes for your top-level interfaces.

A simple delivery script would look something like:

(in-package "MY-PACKAGE")

(capi:define-interface foo ()  


(defmethod capi:top-level-interface-save-geometry-p ((interface foo))

(defmethod capi:top-level-interface-geometry-key ((interface foo))
 (values 'foo :foo-bar))

(setf (sys:product-registry-path :foo-bar)
     '("Software" "" "The foo-bar test"))

(defun  start ()
   (capi:display (make-instance 'foo)))

(deliver 'start
        :keep-symbols '(foo)
        :interface :capi)


See Also:
Workaround: Use deliver keyword  :keep-symbols

Patch Enhancement#:

Company     Contact     Privacy Policy     Terms of Use