X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FBuilder4%2FWindowRooView.vala;h=6906c4176196359295c9135fa34b7051ba69fe2d;hb=6b47d4fc5bda7c979e3860e27bbd54bf211574b8;hp=f9bfd57df4dce8a54367018670fb5360820c3457;hpb=bedf2c600bbd5c4a2ab53db3d201b6e4aed04d10;p=app.Builder.js diff --git a/src/Builder4/WindowRooView.vala b/src/Builder4/WindowRooView.vala index f9bfd57df..6906c4176 100644 --- a/src/Builder4/WindowRooView.vala +++ b/src/Builder4/WindowRooView.vala @@ -933,6 +933,7 @@ public class Xcls_WindowRooView : Object // my vars (def) public bool loading; public bool allow_node_scroll; + public JsRender.Node? node; public string propSelected; // ctor @@ -945,6 +946,7 @@ public class Xcls_WindowRooView : Object // my vars (dec) this.loading = true; this.allow_node_scroll = true; + this.node = null; this.propSelected = ""; // set gobject values @@ -1105,18 +1107,20 @@ public class Xcls_WindowRooView : Object public void nodeSelected (JsRender.Node? sel, bool scroll ) { - + // this is connected in widnowstate - print("node selected\n"); - var buf = this.el.get_buffer(); - - var sbuf = (Gtk.SourceBuffer) buf; - + + // not sure why.... while(Gtk.events_pending()) { Gtk.main_iteration(); } + + print("node selected\n"); + var buf = this.el.get_buffer(); + var sbuf = (Gtk.SourceBuffer) buf; + // clear all the marks.. Gtk.TextIter start; @@ -1168,21 +1172,30 @@ public class Xcls_WindowRooView : Object start_line = nstart; end_line = nend; this.el.editable = true; - + print("start line = %d, end line = %d\n", start_line, end_line); // see if we are 'right of ':' // get an iter for the start of the line. - Gtk.TextIter start_line_iter; - this.el.buffer.get_iter_at_line(out start_line_iter, start_line); - var end_line_iter = start_line_iter.copy(); - if (end_line_iter.forward_to_line_end(); - var first_line = this.el.buffer.get_text(start_line_iter, end_line_iter, false); - colon_pos = start_line_iter.get_offset() + first_line.index_of(":"); + Gtk.TextIter start_line_iter,end_line_iter; + this.el.buffer.get_iter_at_line(out start_line_iter, start_line -1); + this.el.buffer.get_iter_at_line(out end_line_iter, start_line -1); + - } - if (start_line == cursor_at_line) { + + if (end_line_iter.forward_to_line_end()) { + var first_line = this.el.buffer.get_text(start_line_iter, end_line_iter, false); + print("first line = %s\n", first_line); + if (first_line.contains(":")) { + colon_pos = start_line_iter.get_offset() + first_line.index_of(":"); + } + print("colon_pos = %d\n", colon_pos); + } + print("is cursor at line? %d ?= %d\n", start_line -1 , cursor_at_line); + if (start_line - 1 == cursor_at_line) { + print("cursor is on current line.\n"); var before_cursor_string = this.el.buffer.get_text(start_line_iter, cur_iter, false); + print("before cursor string = %s\n", before_cursor_string); if (!before_cursor_string.contains(":")) { this.el.editable = false; } @@ -1196,7 +1209,7 @@ public class Xcls_WindowRooView : Object } - + print("checking selection\n"); // check selection - if it's out of 'bounds'