From 862b1bc4c889ea2256c46b0398138c318d63484b Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 29 Apr 2018 01:58:39 -0500 Subject: [PATCH] post tooltips: don't show if lost focus during ajax call (#3689). Fix the tooltip appearing and getting stuck when the user mouses out during the ajax request. --- app/assets/javascripts/post_tooltips.js.erb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/assets/javascripts/post_tooltips.js.erb b/app/assets/javascripts/post_tooltips.js.erb index f48f3434a..146ebda6e 100644 --- a/app/assets/javascripts/post_tooltips.js.erb +++ b/app/assets/javascripts/post_tooltips.js.erb @@ -6,6 +6,12 @@ Danbooru.PostTooltip.render_tooltip = function (event, qtip) { $.get("/posts/" + post_id, { variant: "tooltip" }).then(function (html) { qtip.set("content.text", html); qtip.elements.tooltip.removeClass("post-tooltip-loading"); + + // Hide the tooltip if the user stopped hovering before the ajax request completed. + if (Danbooru.PostTooltip.lostFocus) { + console.log("hiding"); + qtip.hide(); + } }); }; @@ -61,6 +67,12 @@ Danbooru.PostTooltip.initialize = function () { } else { $(this).qtip(Danbooru.PostTooltip.QTIP_OPTIONS, event); } + + Danbooru.PostTooltip.lostFocus = false; + }); + + $(document).on("mouseleave", Danbooru.PostTooltip.POST_SELECTOR, function (event) { + Danbooru.PostTooltip.lostFocus = true; }); // Hide tooltips when pressing keys or clicking thumbnails.