src/Builder4/Editor.bjs
authorAlan Knowles <alan@roojs.com>
Wed, 20 Mar 2024 15:38:39 +0000 (23:38 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 20 Mar 2024 15:38:39 +0000 (23:38 +0800)
src/Builder4/Editor.vala

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

index e2592ef..9561b34 100644 (file)
           "\tforeach(var sym in syms) {",
           "\t\t_this.navliststore.el.append(sym);",
           "\t}",
-          "\tGtk.TextIter iter;",
-          "\t_this.buffer.el.get_iter_at_offset (",
-          "\t\t\tout iter, _this.buffer.el.cursor_position);",
-          "\tvar line = iter.get_line();",
-          "\t_this.navigation.updateSelectedLine(",
-          "\t\t\t(uint)iter.get_line(),",
-          "\t\t\t(uint)iter.get_line_offset()",
+          "\tGLib.Idle.add(() => {",
+          "\t\tGlib.debug(\"idle update scroll\");",
+          "\t\tGtk.TextILter iter;",
+          "\t\t_this.buffer.el.get_iter_at_offset (",
+          "\t\t\t\tout iter, _this.buffer.el.cursor_position);",
+          "\t\tvar line = iter.get_line();",
+          "\t\tthis.updateSelectedLine(",
+          "\t\t\t\t(uint)iter.get_line(),",
+          "\t\t\t\t(uint)iter.get_line_offset()",
           "\t\t);",
+          "\t\treturn false;",
+          "\t});",
           "",
           "}"
          ],
index bec41a1..e8b6e6e 100644 (file)
@@ -1852,14 +1852,18 @@ public class Editor : Object
                        foreach(var sym in syms) {
                                _this.navliststore.el.append(sym);
                        }
-                       Gtk.TextIter iter;
-                       _this.buffer.el.get_iter_at_offset (
-                                       out iter, _this.buffer.el.cursor_position);
-                       var line = iter.get_line();
-                       _this.navigation.updateSelectedLine(
-                                       (uint)iter.get_line(),
-                                       (uint)iter.get_line_offset()
+                       GLib.Idle.add(() => {
+                               Glib.debug("idle update scroll");
+                               Gtk.TextILter iter;
+                               _this.buffer.el.get_iter_at_offset (
+                                               out iter, _this.buffer.el.cursor_position);
+                               var line = iter.get_line();
+                               this.updateSelectedLine(
+                                               (uint)iter.get_line(),
+                                               (uint)iter.get_line_offset()
                                );
+                               return false;
+                       });
                
                }
                public int getRowAt (double x,  double  y, out string pos) {