X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/aaa24d14b5c8c588170c7e28fba8034644d4e926..refs/heads/try:/gtk/gtktree.lisp diff --git a/gtk/gtktree.lisp b/gtk/gtktree.lisp index e882bdb..5f9a181 100644 --- a/gtk/gtktree.lisp +++ b/gtk/gtktree.lisp @@ -348,7 +348,8 @@ (define-type-method destroy-function ((type tree-path) &key temp inlined) (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))) @@ -383,7 +384,7 @@ (defbinding tree-model-get-column-type () gtype (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) @@ -394,7 +395,7 @@ (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