From a45af143b1d05cffa0df32f043e63ba859e3c33c Mon Sep 17 00:00:00 2001
From: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Fri, 26 Jul 2019 13:58:49 +0900
Subject: [PATCH] Break guides on mouse out

---
 desktop/sources/scripts/ronin.js   | 10 ++++++++++
 desktop/sources/scripts/surface.js |  2 ++
 2 files changed, 12 insertions(+)

diff --git a/desktop/sources/scripts/ronin.js b/desktop/sources/scripts/ronin.js
index 51e094b..a037742 100644
--- a/desktop/sources/scripts/ronin.js
+++ b/desktop/sources/scripts/ronin.js
@@ -114,6 +114,16 @@ function Ronin () {
     this.surface.clearGuide()
   }
 
+  this.onMouseOver = (e) => {
+    this.mouseOrigin = null
+    this.surface.clearGuide()
+  }
+
+  this.onMouseOut = (e) => {
+    this.mouseOrigin = null
+    this.surface.clearGuide()
+  }
+
   this.mouseShape = (position, type) => {
     if (!this.mouseOrigin) { return }
     const x = position.x
diff --git a/desktop/sources/scripts/surface.js b/desktop/sources/scripts/surface.js
index 6ac6fce..3756103 100644
--- a/desktop/sources/scripts/surface.js
+++ b/desktop/sources/scripts/surface.js
@@ -15,6 +15,8 @@ function Surface (ronin) {
     this._guide.addEventListener('mousedown', ronin.onMouseDown, false)
     this._guide.addEventListener('mousemove', ronin.onMouseMove, false)
     this._guide.addEventListener('mouseup', ronin.onMouseUp, false)
+    this._guide.addEventListener('mouseover', ronin.onMouseOver, false)
+    this._guide.addEventListener('mouseout', ronin.onMouseOut, false)
   }
 
   this.start = function () {