diff --git a/lib/ace/editor.js b/lib/ace/editor.js index dfca96b8..2426247d 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -1029,6 +1029,7 @@ var Editor = function(renderer, session) { this.getHighlightGutterLine = function() { return this.getOption("highlightGutterLine"); }; + /** * Determines if the currently selected word should be highlighted. * @param {Boolean} shouldHighlight Set to `true` to highlight the currently selected word @@ -2432,6 +2433,7 @@ config.defineOptions(Editor.prototype, "editor", { dragDelay: "$mouseHandler", dragEnabled: "$mouseHandler", focusTimout: "$mouseHandler", + tooltipFollowsMouse: "$mouseHandler", firstLineNumber: "session", overwrite: "session", diff --git a/lib/ace/mouse/default_gutter_handler.js b/lib/ace/mouse/default_gutter_handler.js index 42fbb02a..e846d1be 100644 --- a/lib/ace/mouse/default_gutter_handler.js +++ b/lib/ace/mouse/default_gutter_handler.js @@ -90,7 +90,16 @@ function GutterHandler(mouseHandler) { tooltip.show(); editor.on("mousewheel", hideTooltip); - moveTooltip(mouseEvent); + if (mouseHandler.$tooltipFollowsMouse) { + moveTooltip(mouseEvent); + } else { + var gutterElement = gutter.$cells[row].element; + var rect = gutterElement.getBoundingClientRect(); + var tooltipLeft = rect.right; + var tooltipTop = rect.bottom; + tooltip.style.left = tooltipLeft + "px"; + tooltip.style.top = tooltipTop - 5 + "px"; + } } function hideTooltip() { @@ -112,7 +121,7 @@ function GutterHandler(mouseHandler) { if (dom.hasCssClass(target, "ace_fold-widget")) return hideTooltip(); - if (tooltipAnnotation) + if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse) moveTooltip(e); mouseEvent = e; diff --git a/lib/ace/mouse/mouse_handler.js b/lib/ace/mouse/mouse_handler.js index d9f6188f..47457f17 100644 --- a/lib/ace/mouse/mouse_handler.js +++ b/lib/ace/mouse/mouse_handler.js @@ -153,7 +153,8 @@ config.defineOptions(MouseHandler.prototype, "mouseHandler", { scrollSpeed: {initialValue: 2}, dragDelay: {initialValue: 150}, dragEnabled: {initialValue: true}, - focusTimout: {initialValue: 0} + focusTimout: {initialValue: 0}, + tooltipFollowsMouse: {initialValue: true} });