From ee88196ffee1502fff13425457a8b831b13e8423 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Thu, 30 Apr 2015 22:48:14 -0700 Subject: [PATCH] Prevent dropping files onto captcha causing navigation to the file. --- src/General/css/style.css | 5 +++++ src/Posting/QR.coffee | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/General/css/style.css b/src/General/css/style.css index 5ed05bffe..a252935dd 100755 --- a/src/General/css/style.css +++ b/src/General/css/style.css @@ -1267,6 +1267,11 @@ input.field.tripped:not(:hover):not(:focus) { width: 100%; } +/* Prevent dragging files into captcha */ +:root.dragging iframe { + pointer-events: none; +} + /* File Input, Submit Button */ #file-n-submit { display: -webkit-flex; diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 14292178e..413e92ff8 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -75,6 +75,8 @@ QR = $.on d, 'dragover', QR.dragOver $.on d, 'drop', QR.dropFile $.on d, 'dragstart dragend', QR.drag + $.on d, 'dragenter', QR.dragEnter + $.on d, 'dragleave', QR.dragLeave $.on d, 'IndexRefresh', QR.generatePostableThreadsList $.on d, 'ThreadUpdate', QR.statusCheck @@ -315,12 +317,25 @@ QR = e.dataTransfer.dropEffect = 'copy' # cursor feedback dropFile: (e) -> + delete QR.dragTarget + $.rmClass doc, 'dragging' + # Let it only handle files from the desktop. return unless e.dataTransfer.files.length + e.preventDefault() QR.open() QR.handleFiles e.dataTransfer.files + dragEnter: (e) -> + QR.dragTarget = e.target + $.addClass doc, 'dragging' + + dragLeave: (e) -> + if QR.dragTarget is e.target + delete QR.dragTarget + $.rmClass doc, 'dragging' + paste: (e) -> return unless e.clipboardData.items files = []