"| int nodeToRow" : [
"(JsRender.Node node) ",
"{",
- "\tvar row = -1;",
+ " ",
"\tvar s = _this.view.el.model as Gtk.SingleSelection;",
"\tfor (var i = 0; i < s.n_items; i++) {",
"\t\t//GLib.debug(\"check node %s\", s.get_item(i).get_type().name());",
"\t\tvar lr = s.get_item(i) as Gtk.TreeListRow;",
"\t\t//GLib.debug(\"check node %s\", lr.get_item().get_type().name());",
- "\t\tif ((lr.get_item() as JsRender.Node).oid == node.oid) {",
+ "\t\tvar nn = (lr.get_item() as JsRender.Node);",
+ "\t\tif (nn != null && nn.oid == node.oid) {",
"\t\t\treturn i;",
"\t\t\t",
"\t\t}",
""
],
"| void selectNode" : [
- "(JsRender.Node node) ",
+ "(JsRender.Node? node) ",
"{",
- "\tvar row = this.nodeToRow(node);",
"\tvar s = _this.view.el.model as Gtk.SingleSelection;",
+ "\tif (node == null) {",
+ "\t\ts.selected=Gtk.INVALID_LIST_POSITION;",
+ "\t\treturn;",
+ "\t}",
+ "\tvar row = this.nodeToRow(node);",
+ "",
"\t ",
"\tif (row < 0) {",
"\t\t// select none?",
"\t\tGLib.debug(\"Could not find node\");",
+ "\t\ts.selected=Gtk.INVALID_LIST_POSITION;",
"\t\treturn;",
"\t}",
"\tGLib.debug(\"Select %d\", row);",
"| int getRowAt" : [
"(double x, double y, out string pos) {",
"",
+ "\tpos = \"\";",
"\tvar w = this.el.pick(x, y, Gtk.PickFlags.DEFAULT);",
"\t//GLib.debug(\"got widget %s\", w == null ? \"nothing\" : w.get_type().name());",
"\tif (w == null) {",