summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/www/minibar/minibar_input.js35
-rw-r--r--src/www/minibar/minibar_translations.js8
2 files changed, 31 insertions, 12 deletions
diff --git a/src/www/minibar/minibar_input.js b/src/www/minibar/minibar_input.js
index 5cc7c140e..65c525762 100644
--- a/src/www/minibar/minibar_input.js
+++ b/src/www/minibar/minibar_input.js
@@ -370,23 +370,36 @@ Input.prototype.end_structural_editing=function() {
}
}
-Input.prototype.enable_structural_editing=function(brackets,tree) {
+Input.prototype.enable_structural_editing=function(bracketss,tree) {
var t=this;
with(t) {
var typed=surface.typed;
- function add_bs(b,parent) {
- if(b.token) {
- var fun=parent.fun,cat=parent.cat;
- function showrepl() { t.show_replacements(brackets,parent,tree)}
- var w= span_class("word editable",text(b.token));
- if(fun && cat) w.onclick=showrepl
- w.title=(fun||"_")+":"+(cat||"_")+" "+parent.fid+":"+parent.index
- surface.insertBefore(w,typed);
+ function add_bracket(brackets) {
+ function add_bs(b,parent) {
+ if(b.token) {
+ var fun=parent.fun,cat=parent.cat;
+ function showrepl() {
+ t.show_replacements(brackets,parent,tree)
+ }
+ if(fun && cat) {
+ var w= span_class("word editable",text(b.token));
+ w.onclick=showrepl
+ }
+ else
+ var w= span_class("word",text(b.token));
+ w.title=(fun||"_")+":"+(cat||"_")+" "+parent.fid+":"+parent.index
+ surface.insertBefore(w,typed);
+ }
+ else b.children.map(function(c){add_bs(c,b)})
}
- else b.children.map(function(c){add_bs(c,b)})
+ add_bs(brackets,null)
}
remove_surface_words()
- add_bs(brackets);
+ //add_bs(brackets);
+ if(Array.isArray(bracketss))
+ bracketss.map(add_bracket) // gf>3.5
+ else
+ add_bracket(bracketss) // gf<=3.5
t.surface.structural_editing_enabled=true;
}
}
diff --git a/src/www/minibar/minibar_translations.js b/src/www/minibar/minibar_translations.js
index 52b391678..bf4555aa4 100644
--- a/src/www/minibar/minibar_translations.js
+++ b/src/www/minibar/minibar_translations.js
@@ -207,7 +207,7 @@ Translations.prototype.show_translations=function(translationResults) {
trans.appendChild(wrap("pre",text(errs[i].msg)))
}
if(options.show_brackets)
- trans.appendChild(div_class("brackets",draw_brackets(bra)));
+ trans.appendChild(div_class("brackets",draw_bracketss(bra)));
}
}
@@ -291,3 +291,9 @@ function draw_brackets(b) {
title:(b.fun||"_")+":"+b.cat+" "+b.fid+":"+b.index},
b.children.map(draw_brackets))
}
+
+function draw_bracketss(bs) {
+ return Array.isArray(bs)
+ ? bs.map(draw_brackets) //with gf>3.5, in some cases
+ : draw_brackets(b) // with gf<=3.5
+}