(FINALLY) fixed duplicate move request bug

This commit is contained in:
Joel Collins 2019-11-11 15:00:41 +00:00
parent 13d4c9a2fe
commit 051eabbdc3
3 changed files with 37 additions and 25 deletions

View file

@ -125,6 +125,12 @@ export default {
} }
}, },
created: function () {
window.addEventListener('keydown', this.keyDownMonitor);
window.addEventListener("keyup", this.keyUpMonitor);
window.addEventListener('wheel', this.wheelMonitor);
},
mounted() { mounted() {
// A global signal listener to perform a move action // A global signal listener to perform a move action
this.$root.$on('globalMoveEvent', (x, y, z, absolute) => { this.$root.$on('globalMoveEvent', (x, y, z, absolute) => {
@ -132,6 +138,17 @@ export default {
}) })
}, },
beforeDestroy () {
// Remove global signal listener to perform a move action
this.$root.$off('globalMoveEvent')
},
destroyed: function () {
window.removeEventListener('keydown', this.keyDownMonitor);
window.removeEventListener("keyup", this.keyUpMonitor);
window.removeEventListener('wheel', this.wheelMonitor);
},
methods: { methods: {
// Handle global mouse wheel events to be associated with navigation // Handle global mouse wheel events to be associated with navigation
wheelMonitor: function(event) { wheelMonitor: function(event) {
@ -271,12 +288,6 @@ export default {
}, },
created: function () {
window.addEventListener('keydown', this.keyDownMonitor);
window.addEventListener("keyup", this.keyUpMonitor);
window.addEventListener('wheel', this.wheelMonitor);
},
computed: { computed: {
positionApiUri: function () { positionApiUri: function () {
return this.$store.getters.uri + "/stage/position" return this.$store.getters.uri + "/stage/position"

View file

@ -1,9 +1,10 @@
<template> <template>
<div ref="streamDisplay" class="stream-display uk-width-1-1 uk-height-1-1 scrollTarget" id="stream-display"> <div ref="streamDisplay" class="stream-display uk-width-1-1 uk-height-1-1 scrollTarget" id="stream-display">
<img class="uk-align-center uk-margin-remove-bottom" v-on:dblclick="clickmonitor" v-if="showStream" v-bind:src="streamImgUri" alt="Stream"> <img class="uk-align-center uk-margin-remove-bottom" v-on:dblclick="clickMonitor" v-bind:hidden="!showStream" v-bind:src="streamImgUri" alt="Stream" ref="click-frame">
<div v-else-if="$store.state.waiting" class="uk-position-center"> <div v-if="!showStream">
<div v-if="$store.state.waiting" class="uk-position-center">
<div uk-spinner="ratio: 4.5" ></div> <div uk-spinner="ratio: 4.5" ></div>
</div> </div>
@ -14,6 +15,8 @@
<div v-else class="uk-position-center position-relative text-center"> <div v-else class="uk-position-center position-relative text-center">
No active connection No active connection
</div> </div>
</div>
</div> </div>
</template> </template>
@ -76,7 +79,7 @@ export default {
}, },
methods: { methods: {
clickmonitor: function(event) { clickMonitor: function(event) {
// Calculate steps from event coordinates and store config FOV // Calculate steps from event coordinates and store config FOV
let xCoordinate = event.offsetX; let xCoordinate = event.offsetX;
let yCoordinate = event.offsetY; let yCoordinate = event.offsetY;
@ -89,8 +92,6 @@ export default {
// Emit a signal to move, acted on by panelNavigate.vue // Emit a signal to move, acted on by panelNavigate.vue
this.$root.$emit('globalMoveEvent', xSteps, ySteps, 0, false) this.$root.$emit('globalMoveEvent', xSteps, ySteps, 0, false)
this.flashStream()
}, },
flashStream: function() { flashStream: function() {