From 1d4380cee77fc049a54d280a27dcefa3fa6ff1fd Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 10 Dec 2017 14:25:29 -0500 Subject: theme (#546) * Update to coffee and use webstorm * Add chrome as well * Update all * Reinstall android 27 --- app/src/main/assets/js/click_a.coffee | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 app/src/main/assets/js/click_a.coffee (limited to 'app/src/main/assets/js/click_a.coffee') diff --git a/app/src/main/assets/js/click_a.coffee b/app/src/main/assets/js/click_a.coffee new file mode 100644 index 00000000..e032b4ad --- /dev/null +++ b/app/src/main/assets/js/click_a.coffee @@ -0,0 +1,48 @@ +prevented = false + +_frostAClick = (e) -> + + ### + # Commonality; check for valid target + ### + element = e.target or e.srcElement + if element.tagName != "A" + element = element.parentNode + # Notifications is two layers under + if element.tagName != "A" + element = element.parentNode + if element.tagName == "A" + if !prevented + url = element.getAttribute("href") + console.log "Click Intercept #{url}" + # if frost is injected, check if loading the url through an overlay works + if Frost?.loadUrl(url) == true + e.stopPropagation() + e.preventDefault() + else + console.log "Click Intercept Prevented" + return + +### +# On top of the click event, we must stop it for long presses +# Since that will conflict with the context menu +# Note that we only override it on conditions where the context menu +# Will occur +### + +_frostPreventClick = -> + console.log "Click prevented" + prevented = true + return + +document.addEventListener "click", _frostAClick, true +clickTimeout = undefined +document.addEventListener "touchstart", ((e) -> + clickTimeout = setTimeout(_frostPreventClick, 400) + return +), true +document.addEventListener "touchend", ((e) -> + prevented = false + clearTimeout clickTimeout + return +), true -- cgit v1.2.3