diff --git a/templates/repo/sub_menu.tmpl b/templates/repo/sub_menu.tmpl
index 56c94f1b658e5..8edb0c151646a 100644
--- a/templates/repo/sub_menu.tmpl
+++ b/templates/repo/sub_menu.tmpl
@@ -38,7 +38,7 @@
{{range .LanguageStats}}
-
+
{{end}}
{{end}}
diff --git a/web_src/js/modules/tippy.js b/web_src/js/modules/tippy.js
index 4eed0aa4bb038..ec7ee2141f9f9 100644
--- a/web_src/js/modules/tippy.js
+++ b/web_src/js/modules/tippy.js
@@ -1,4 +1,4 @@
-import tippy from 'tippy.js';
+import tippy, {followCursor} from 'tippy.js';
const visibleInstances = new Set();
@@ -35,6 +35,7 @@ export function createTippy(target, opts = {}) {
arrow: ``,
role: 'menu', // HTML role attribute, only tooltips should use "tooltip"
theme: other.role || 'menu', // CSS theme, we support either "tooltip" or "menu"
+ plugins: [followCursor],
...other,
});
@@ -78,6 +79,7 @@ function attachTooltip(target, content = null) {
theme: 'tooltip',
hideOnClick,
placement: target.getAttribute('data-tooltip-placement') || 'top-start',
+ followCursor: target.getAttribute('data-tooltip-follow-cursor') || false,
...(target.getAttribute('data-tooltip-interactive') === 'true' ? {interactive: true, aria: {content: 'describedby', expanded: false}} : {}),
};