diff --git a/core/modules/startup/startup.js b/core/modules/startup/startup.js index e0990228f..e09f6393f 100755 --- a/core/modules/startup/startup.js +++ b/core/modules/startup/startup.js @@ -27,6 +27,11 @@ exports.startup = function() { if($tw.browser) { $tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent)); $tw.browser.isFirefox = !!document.mozFullScreenEnabled; + // 2023-07-21 Edge returns UA below. So we use "isChromeLike" + //'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/114.0.0.0 safari/537.36 edg/114.0.1823.82' + $tw.browser.isChromeLike = navigator.userAgent.toLowerCase().indexOf("chrome") > -1; + $tw.browser.hasTouch = !!window.matchMedia && window.matchMedia("(pointer: coarse)").matches; + $tw.browser.isMobileChrome = $tw.browser.isChromeLike && $tw.browser.hasTouch; } // Platform detection $tw.platform = {}; diff --git a/core/modules/utils/dom/dragndrop.js b/core/modules/utils/dom/dragndrop.js index 0b5360216..c7c32cbaf 100644 --- a/core/modules/utils/dom/dragndrop.js +++ b/core/modules/utils/dom/dragndrop.js @@ -80,7 +80,7 @@ exports.makeDraggable = function(options) { if(dataTransfer.setDragImage) { if(dragImageType === "pill") { dataTransfer.setDragImage(dragImage.firstChild,-16,-16); - } else if (dragImageType === "blank") { + } else if(dragImageType === "blank") { dragImage.removeChild(dragImage.firstChild); dataTransfer.setDragImage(dragImage,0,0); } else { @@ -106,7 +106,9 @@ exports.makeDraggable = function(options) { dataTransfer.setData("text/vnd.tiddler",jsonData); dataTransfer.setData("text/plain",titleString); dataTransfer.setData("text/x-moz-url","data:text/vnd.tiddler," + encodeURIComponent(jsonData)); - } else { + } + // If browser is Chrome-like and has a touch-input device do NOT .setData + if(!($tw.browser.isMobileChrome)) { dataTransfer.setData("URL","data:text/vnd.tiddler," + encodeURIComponent(jsonData)); } dataTransfer.setData("Text",titleString);