Fix #8104 - update nav tree by comparing changes
[roobuilder] / src / Builder4 / Editor.bjs
index 484968a..af1b6bc 100644 (file)
                "\tsym.set_data<Gtk.Widget>(\"widget\", expand.get_parent());",
                "\texpand.get_parent().get_parent().set_data<Lsp.DocumentSymbol>(\"symbol\", sym);",
                "\t",
-               "\tGLib.debug(\"save sym on %s\", expand.get_parent().get_parent().get_type().name());",
+               "\t//GLib.debug(\"save sym on %s\", expand.get_parent().get_parent().get_type().name());",
                "\t",
                "\t//GLib.debug(\"got %d children for %s\" , (int)sym.children.get_n_items(), sym.name);",
                "    ",
          "| void show" : [
           "(Gee.ArrayList<Lsp.DocumentSymbol> syms) {",
           "\t_this.navigationwindow.el.show();",
-          "\t_this.navliststore.el.remove_all();",
+          "\t//_this.navliststore.el.remove_all();",
+          "\t",
+          "\t",
+          "\tvar ls  = new GLib.ListStore(typeof(Lsp.DocumentSymbol));",
+          "\t",
           "\tforeach(var sym in syms) {",
-          "\t\t_this.navliststore.el.append(sym);",
+          "\t\tls.append(sym);",
           "\t}",
+          "\tLsp.DocumentSymbol.copyList(ls, _this.navliststore.el);",
+          "\t//_this.navliststore.el.append(sym);",
           "\tthis.last_selected_line = -1;",
           "\tGLib.Idle.add(() => {",
           "",