From 08e25e40c543738b4282fe9157bd176f9bee5b49 Mon Sep 17 00:00:00 2001 From: evazion Date: Sun, 29 Apr 2018 00:05:33 -0500 Subject: [PATCH] post tooltips: disable tooltips on touchscreens (#3689). On phones / tablets, long pressing a thumbnail sends emulated mouse events that trigger the tooltip. Disable tooltips while touching is active. --- app/assets/javascripts/post_tooltips.js.erb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/post_tooltips.js.erb b/app/assets/javascripts/post_tooltips.js.erb index a85247032..22db6cf6c 100644 --- a/app/assets/javascripts/post_tooltips.js.erb +++ b/app/assets/javascripts/post_tooltips.js.erb @@ -65,6 +65,11 @@ Danbooru.PostTooltip.initialize = function () { // Hide tooltips when clicking thumbnails. $(document).on("click", Danbooru.PostTooltip.POST_SELECTOR, Danbooru.PostTooltip.hide); + + // Disable tooltips on touch devices. https://developer.mozilla.org/en-US/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent + Danbooru.PostTooltip.isTouching = false; + $(document).on("touchstart", function (event) { Danbooru.PostTooltip.isTouching = true; }); + $(document).on("touchend", function (event) { Danbooru.PostTooltip.isTouching = false; }); }; Danbooru.PostTooltip.hide = function (event) { @@ -72,7 +77,7 @@ Danbooru.PostTooltip.hide = function (event) { }; Danbooru.PostTooltip.disabled = function (event) { - return Danbooru.meta("disable-post-tooltips") === "true"; + return Danbooru.PostTooltip.isTouching || Danbooru.meta("disable-post-tooltips") === "true"; }; $(document).ready(Danbooru.PostTooltip.initialize);