Lisp HUG Maillist Archive

Double-click on capi:tree-view opens a window but TAB key does not work

Hello lispworkers,

Please evaluated the following code.

;;; Very similar to examples/capi/choice/tree-view.lisp

(in-package "CL-USER")

(defvar *my-image-list*
  (make-instance 'capi:image-list
   :image-sets (list (capi:make-general-image-set
                      :id #.(gp:read-external-image
                             (current-pathname"tree.bmp"))
                      :image-count 4))
   :image-width 16 :image-height 16))

(capi:define-interface tree-view-activate () ()
  (:panes
   (tree capi:tree-view
         :roots '(1 2 3 4)
         :children-function #'(lambda (x)
                                (and (< x 100)
                                     (let ((base (* x 4)))
                                       (list (+ base 1)
                                             (+ base 2)
                                             (+ base 3)
                                             (+ base 4)))))
         :image-lists (list :normal *my-image-list*)
         :image-function #'(lambda (x) (mod (1- x) 4))
         :visible-min-width 200
         :visible-min-height 200
         :retain-expanded-nodes t
         :action-callback #'(lambda (item self)
                              (declare (ignore self))
                              (format t "~&Activate before ~S" item)
                              (capi:find-interface 'second-interface)
                              (format t "~&Activate after ~S" item))))
  (:layouts
   (default-layout capi:simple-layout '(tree)))
  (:default-initargs
   :title "DOUBLE-CLICK to Open Second Window"))

(capi:define-interface second-interface () ()
  (:panes
   (text1 capi:text-input-pane :title "Text1:")
   (text2 capi:text-input-pane :title "Text2:"))
  (:layouts
   (main-layout capi:column-layout '(text1 text2)))
  (:default-initargs
   :layout 'main-layout
   :title "Second Interface - TAB does not work"
   :activate-callback (lambda (interface state)
                        (format t "~&Activate interface state ~S" state))))

(capi:display (make-instance 'tree-view-activate))

On Windows XP SP3, the second window "feels bad" just on opening it by means
of double-clicking on a tree view item. Neither the TAB key nor menu
accelerators (if there were some) work - the window  beeps. After closing
the second window and reopening it by means of pressing ENTER, it works
fine.
I have tested with LWW 4.4 and LWW 5.1.1 Personal.

On Windows 2000, everything works fine on LWW 4.4 (have not tried LWW
5.1.1).
--
Sincerely,
Dmitriy Ivanov
lisp.ystok.ru


Updated at: 2020-12-10 08:39 UTC