From b3608272a00b52efdae53763b6d7ef7783baa81c Mon Sep 17 00:00:00 2001 From: cpsdqs Date: Sun, 10 Sep 2017 00:04:17 +0200 Subject: [PATCH 1/2] Fix #119 and space causing the screen to scroll (again) --- jssrc/term_input.js | 2 +- jssrc/term_screen.js | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/jssrc/term_input.js b/jssrc/term_input.js index 6df0535..12c06b5 100644 --- a/jssrc/term_input.js +++ b/jssrc/term_input.js @@ -143,7 +143,7 @@ var Input = (function() { if (str.length>0 && str.charCodeAt(0) >= 32) { // console.log("Typed ", str); // prevent space from scrolling - if (e.which === 32) e.preventDefault(); + if (evt.which === 32) evt.preventDefault(); sendStrMsg(str); } }); diff --git a/jssrc/term_screen.js b/jssrc/term_screen.js index 2bb56e1..c6bb975 100644 --- a/jssrc/term_screen.js +++ b/jssrc/term_screen.js @@ -156,7 +156,7 @@ class TermScreen { }; this.canvas.addEventListener('mousedown', e => { - if (this.selection.selectable || e.altKey) { + if ((this.selection.selectable || e.altKey) && e.button === 0) { selectStart(e.offsetX, e.offsetY) } else { Input.onMouseDown(...this.screenToGrid(e.offsetX, e.offsetY), @@ -272,8 +272,11 @@ class TermScreen { } }); this.canvas.addEventListener('contextmenu', e => { - // prevent mouse keys getting stuck - e.preventDefault(); + if (this.mouseMode.clicks) { + // prevent mouse keys getting stuck + e.preventDefault(); + } + selectEnd(e.offsetX, e.offsetY); }) // bind ctrl+shift+c to copy From a7a2daee1191bb5090ac3853e6f30fa033bf4aff Mon Sep 17 00:00:00 2001 From: cpsdqs Date: Sun, 10 Sep 2017 00:09:51 +0200 Subject: [PATCH 2/2] Prevent horrible screeching when BEL is spammed --- jssrc/term_screen.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jssrc/term_screen.js b/jssrc/term_screen.js index c6bb975..3ac2714 100644 --- a/jssrc/term_screen.js +++ b/jssrc/term_screen.js @@ -888,6 +888,10 @@ class TermScreen { const audioCtx = this.audioCtx; if (!audioCtx) return; + // prevent screeching + if (this._lastBeep && this._lastBeep > Date.now() - 50) return; + this._lastBeep = Date.now(); + let osc, gain; // main beep