aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/assets/js/click_a.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/assets/js/click_a.js')
-rw-r--r--app/src/main/assets/js/click_a.js36
1 files changed, 34 insertions, 2 deletions
diff --git a/app/src/main/assets/js/click_a.js b/app/src/main/assets/js/click_a.js
index aabcd7e3..27b09a7e 100644
--- a/app/src/main/assets/js/click_a.js
+++ b/app/src/main/assets/js/click_a.js
@@ -3,7 +3,14 @@ if (!window.hasOwnProperty('frost_click_a')) {
console.log('Registering frost_click_a');
window.frost_click_a = true;
+ var prevented = false;
+
var _frostAClick = function(e) {
+
+
+ /*
+ * Commonality; check for valid target
+ */
var element = e.target || e.srcElement;
if (element.tagName !== 'A') element = element.parentNode;
//Notifications is two layers under
@@ -11,12 +18,37 @@ if (!window.hasOwnProperty('frost_click_a')) {
if (element.tagName === 'A' && element.getAttribute('href') !== '#') {
var url = element.getAttribute('href');
if (url.includes('photoset_token')) return;
- console.log('Click Intercept', url);
- Frost.loadUrl(url);
+
+
+
+
+ if (!prevented) {
+ console.log('Click Intercept', url);
+ Frost.loadUrl(url);
+ }
e.stopPropagation();
e.preventDefault();
}
}
+ /*
+ * 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
+ */
+ var _frostPreventClick = function() {
+ console.log('Click prevented')
+ prevented = true;
+ }
+
document.addEventListener('click', _frostAClick, true);
+
+ document.addEventListener('touchstart', function _frostStart(e) {
+ setTimeout(_frostPreventClick, 500);
+ }, true);
+
+ document.addEventListener('touchend', function _frostEnd(e) {
+ prevented = false;
+ }, true);
}