lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mouse/fold_handler.js in gollum-3.1.2 vs lib/gollum/public/gollum/livepreview/js/ace/lib/ace/mouse/fold_handler.js in gollum-3.1.3
- old
+ new
@@ -47,51 +47,34 @@
e.stop();
}
});
- editor.on("guttermousedown", function(e) {
+ editor.on("gutterclick", function(e) {
var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);
if (gutterRegion == "foldWidgets") {
var row = e.getDocumentPosition().row;
var session = editor.session;
if (session.foldWidgets && session.foldWidgets[row])
editor.session.onFoldWidgetClick(row, e);
+ if (!editor.isFocused())
+ editor.focus();
e.stop();
}
});
editor.on("gutterdblclick", function(e) {
var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);
if (gutterRegion == "foldWidgets") {
var row = e.getDocumentPosition().row;
var session = editor.session;
- var fw = session.foldWidgets;
- if (!fw || fw[row])
- return;
+ var data = session.getParentFoldRangeData(row, true);
+ var range = data.range || data.firstRange;
- var i = row - 1, firstRange;
- while (i >= 0) {
- var c = fw[i];
- if (c == null)
- c = fw[i] = session.getFoldWidget();
-
- if (c == "start") {
- var range = session.getFoldWidgetRange(i);
- if (!firstRange)
- firstRange = range;
- if (range && range.end.row >= row)
- break;
- }
- i--;
- }
- if (i == -1)
- range = firstRange;
-
if (range) {
- var row = range.start.row;
+ row = range.start.row;
var fold = session.getFoldAt(row, session.getLine(row).length, 1);
if (fold) {
session.removeFold(fold);
} else {