From d94eba45a083d4b22f6b0f846ae0f08802d8b69d Mon Sep 17 00:00:00 2001
From: Tamara Carina Steinwender <tamara.steinwender@student.tugraz.at>
Date: Tue, 20 Oct 2020 11:59:59 +0200
Subject: [PATCH] Fix drawing lines in QR code scanner

---
 .../qr-code-scanner/src/qr-code-scanner.js    | 35 +++++++++++--------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/packages/qr-code-scanner/src/qr-code-scanner.js b/packages/qr-code-scanner/src/qr-code-scanner.js
index 7f6a0bf6..417a93bf 100644
--- a/packages/qr-code-scanner/src/qr-code-scanner.js
+++ b/packages/qr-code-scanner/src/qr-code-scanner.js
@@ -267,14 +267,13 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                 canvasElement.width = video.videoWidth;
                 canvas.drawImage(video, 0, 0, canvasElement.width, canvasElement.height);
 
-
                 let maskWidth = 0;
                 let maskHeight = 0;
                 let maskStartX = canvasElement.width;
                 let maskStartY = canvasElement.height;
 
                 let imageData = canvas.getImageData(0 , 0, canvasElement.width, canvasElement.height)
-                
+
                 if (that.clipMask) {
                     //draw mask
                     let clip = canvasElement.width > canvasElement.height ? canvasElement.height/4 * 3 : canvasElement.width/4 * 3;
@@ -289,7 +288,7 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                     canvas.moveTo(0,0);
                     canvas.lineTo(0, canvasElement.width);
                     canvas.lineTo( canvasElement.width, canvasElement.height);
-                    canvas.lineTo( canvasElement.width,0);
+                    canvas.lineTo( canvasElement.height,0);
                     canvas.rect(maskStartX, maskStartY, maskWidth, maskHeight);
                     canvas.fill();
 
@@ -327,20 +326,26 @@ export class QrCodeScanner extends ScopedElementsMixin(DBPLitElement) {
                 }
 
                 if (code) {
-                    let topLeftCorner = code.location.topLeftCorner;
-                    let topRightCorner = code.location.topRightCorner;
-                    let bottomRightCorner = code.location.bottomRightCorner;
-                    let bottomLeftCorner = code.location.bottomLeftCorner;
+                    let topLeftCorner = {x: 0, y: 0};
+                    let topRightCorner = {x: 0, y: 0};
+                    let bottomRightCorner = {x: 0, y: 0};
+                    let bottomLeftCorner = {x: 0, y: 0};
 
                     if (that.clipMask) {
-                        topLeftCorner.x += maskStartX;
-                        topLeftCorner.y += maskStartY;
-                        topRightCorner.x += maskStartX;
-                        topRightCorner.y += maskStartY;
-                        bottomRightCorner.x += maskStartX;
-                        bottomRightCorner.y += maskStartY;
-                        bottomLeftCorner.x += maskStartX;
-                        bottomLeftCorner.y += maskStartY;
+                        topLeftCorner.x = code.location.topLeftCorner.x + maskStartX;
+                        topLeftCorner.y = code.location.topLeftCorner.y + maskStartY;
+                        topRightCorner.x = code.location.topRightCorner.x + maskStartX;
+                        topRightCorner.y = code.location.topRightCorner.y + maskStartY;
+                        bottomRightCorner.x = code.location.bottomRightCorner.x + maskStartX;
+                        bottomRightCorner.y = code.location.bottomRightCorner.y + maskStartY;
+                        bottomLeftCorner.x = code.location.bottomLeftCorner.x + maskStartX;
+                        bottomLeftCorner.y = code.location.bottomLeftCorner.y + maskStartY;
+                    }
+                    else {
+                        topLeftCorner = code.location.topLeftCorner;
+                        topRightCorner = code.location.topRightCorner;
+                        bottomRightCorner = code.location.bottomRightCorner;
+                        bottomLeftCorner = code.location.bottomLeftCorner;
                     }
 
                     drawLine(topLeftCorner, topRightCorner, color);
-- 
GitLab