}
ltree.view.setCursor(tp, "editor");
// ltree.view.el.set_cursor(new Gtk.TreePath.from_string(tp), null, false);
- this.nodeSelected(node);
+ this.nodeSelected(node,false);
// scrolling is disabled... as node selection calls scroll 10ms after it changes.
GLib.Timeout.add_full(GLib.Priority.DEFAULT,100 , () => {
// highlight the node..
}
- public void nodeSelected (JsRender.Node? sel) {
+ public void nodeSelected (JsRender.Node? sel, bool scroll ) {
//if (cur_line > sel.line_start && cur_line < sel.line_end) {
//} else {
- if (this.allow_node_scroll) {
+ if (scroll) {
this.el.scroll_to_iter(iter, 0.1f, true, 0.0f, 0.5f);
}
end_line = nend;
this.el.editable = true;
}
- print("propSelected = %s range %d -> %d\n", this.propSelected, nstart, nend);
+ print("propSelected = %s range %d -> %d\n", this.propSelected, start_line, end_line);
}
if (this.el.editable && sbuf.get_has_selection()) {
Gtk.TextIter sel_start_iter, sel_end_iter;
sbuf.get_selection_bounds(out sel_start_iter, out sel_end_iter);
- if (sel_start_iter.get_line() < start_line || sel_start_iter.get_line() > end_line) {
+
+ if (sel_start_iter.get_line() < start_line || sel_end_iter.get_line() > end_line ||
+ sel_start_iter.get_line() > end_line || sel_end_iter.get_line() < start_line ) {
// save?
this.el.editable = false;
}
}
public void loadFile ( ) {
this.loading = true;
+
+
+ // get the cursor and scroll position....
var buf = this.el.get_buffer();
+ var cpos = buf.cursor_position;
+
+ print("BEFORE LOAD cursor = %d\n", cpos);
+
+ var vadj_pos = this.el.get_vadjustment().get_value();
+
+
+
buf.set_text("",0);
var sbuf = (Gtk.SourceBuffer) buf;
sbuf.get_bounds (out start, out end);
sbuf.remove_source_marks (start, end, null); // remove all marks..
-
-
-
+ GLib.Timeout.add(500, () => {
+
+ print("RESORTING cursor to = %d\n", cpos);
+ Gtk.TextIter cpos_iter;
+ buf.get_iter_at_offset(out cpos_iter, cpos);
+ buf.place_cursor(cpos_iter);
+
+ this.el.get_vadjustment().set_value(vadj_pos);;
+ this.onCursorChanged();
+ return false;
+ });
+
this.loading = false;
}
public void highlightErrorsJson (string type, Json.Object obj) {