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 {