gtk/gtktree.lisp: Fixing string representations of tree paths.
[clg] / gtk / gtktree.lisp
index 4404530..d884dd0 100644 (file)
 
 (defun ensure-tree-path (path)
   (etypecase path
-    (string (coerce (clg-utils:split-string path :delimiter #\:) 'vector))
+    (string (map 'vector #'parse-integer
+                (clg-utils:split-string path :delimiter #\:)))
     (vector path)))
 
 
 (defbinding tree-model-get-iter (model path &optional (iter (make-instance 'tree-iter))) boolean
   (model tree-model)
   (iter tree-iter :in/return)
-  (path tree-path))
+  ((ensure-tree-path path) tree-path))
 
 #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.12.0")
 (defmethod allocate-foreign ((tree-iter tree-iter) &rest initargs)
 (defun ensure-tree-iter (model row)
   (etypecase row
     (tree-iter row)
-    (tree-path 
+    ((or tree-path string)
      (multiple-value-bind (valid-p iter) (tree-model-get-iter model row)
        (if valid-p
           iter