src/Builder4/Editor.bjs
authorAlan Knowles <alan@roojs.com>
Tue, 19 Mar 2024 14:23:21 +0000 (22:23 +0800)
committerAlan Knowles <alan@roojs.com>
Tue, 19 Mar 2024 14:23:21 +0000 (22:23 +0800)
src/Builder4/Editor.vala

src/Builder4/Editor.bjs
src/Builder4/Editor.vala

index 9e842cb..27ad9c6 100644 (file)
           "}"
          ],
          "| void updateSelectedLine" : [
-          "() {",
+          "(int line) {",
+          "\t",
+          "\tvar new_row = -1;",
+          "\tvar sym = _this.navliststore.symbolAtLine(line);",
+          "\tif (sym) {",
+          "\t \tnew_row = _this.navigationselmodel.getRowFromSymbol(sym);",
+          " \t}",
+          " \tif (new_row == this.selected_row) {",
+          " \t\treturn;",
+          "\t}",
+          "\tif (this.selected_row > -1) {",
+          "\t\tvar old = this.getWidgetAtRow(this.selected_row);",
+          "\t\tif (old !=null) {",
+          "\t\t\told.remove_css_class(\"selcted-row\");",
+          "\t\t}",
+          "\t}\t",
+          "\tif (new_row > -1) {",
+          "\t\tvar row = this.getWidgetAtRow((new_row);",
+          "\t\tif (row != null) {",
+          "\t\t\trow.remove_css_class(\"selcted-row\");",
+          "\t\t}",
+          "\t}",
+          "",
           "",
           "}"
          ]
index 31c2230..6eac372 100644 (file)
@@ -1888,7 +1888,29 @@ public class Editor : Object
                        } 
                        return rn;
                 }
-               public void updateSelectedLine () {
+               public void updateSelectedLine (int line) {
+                       
+                       var new_row = -1;
+                       var sym = _this.navliststore.symbolAtLine(line);
+                       if (sym) {
+                               new_row = _this.navigationselmodel.getRowFromSymbol(sym);
+                       }
+                       if (new_row == this.selected_row) {
+                               return;
+                       }
+                       if (this.selected_row > -1) {
+                               var old = this.getWidgetAtRow(this.selected_row);
+                               if (old !=null) {
+                                       old.remove_css_class("selcted-row");
+                               }
+                       }       
+                       if (new_row > -1) {
+                               var row = this.getWidgetAtRow((new_row);
+                               if (row != null) {
+                                       row.remove_css_class("selcted-row");
+                               }
+                       }
+               
                
                }
        }