(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

@ -2,14 +2,14 @@
<!-- Tabbed panel for gallery and live views --> <!-- Tabbed panel for gallery and live views -->
<div id="panel-right" class="uk-flex uk-flex-column uk-margin-remove uk-padding-remove uk-width-expand uk-height-1-1"> <div id="panel-right" class="uk-flex uk-flex-column uk-margin-remove uk-padding-remove uk-width-expand uk-height-1-1">
<ul class="uk-flex-none uk-flex-center uk-margin-remove-bottom uk-text-center" id="tabContainer" uk-tab="swiping: false"> <ul class="uk-flex-none uk-flex-center uk-margin-remove-bottom uk-text-center" id="tabContainer" uk-tab="swiping: false">
<li><a href="#" uk-switcher-item="connect">Connect</a></li> <li><a href="#" uk-switcher-item="connect">Connect</a></li>
<li v-bind:class="{'uk-disabled': !this.$store.getters.ready}"><a href="#" uk-switcher-item="preview">Live</a></li> <li v-bind:class="{'uk-disabled': !this.$store.getters.ready}"><a href="#" uk-switcher-item="preview">Live</a></li>
<li v-bind:class="{'uk-disabled': !this.$store.getters.ready}"><a href="#" uk-switcher-item="gallery">Gallery</a></li> <li v-bind:class="{'uk-disabled': !this.$store.getters.ready}"><a href="#" uk-switcher-item="gallery">Gallery</a></li>
</ul> </ul>
<ul class="uk-switcher uk-flex uk-flex-1 uk-overflow-auto"> <ul class="uk-switcher uk-flex uk-flex-1 uk-overflow-auto">
<li class="uk-height-1-1 uk-width-1-1" id="connectDisplayTab"><connectDisplay/></li> <li class="uk-height-1-1 uk-width-1-1" id="connectDisplayTab"><connectDisplay/></li>
<li class="uk-height-1-1 uk-width-1-1 clickableTab" id="streamDisplayTab"><streamDisplay/></li> <li class="uk-height-1-1 uk-width-1-1 clickableTab" id="streamDisplayTab"><streamDisplay/></li>
<li class="uk-height-1-1 uk-width-1-1" id="galleryDisplayTab"><galleryDisplay/></li> <li class="uk-height-1-1 uk-width-1-1" id="galleryDisplayTab"><galleryDisplay/></li>
</ul> </ul>
</div> </div>
</template> </template>

View file

@ -1,19 +1,22 @@
<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 uk-spinner="ratio: 4.5" ></div> <div v-if="$store.state.waiting" class="uk-position-center">
<div uk-spinner="ratio: 4.5" ></div>
</div>
<div v-else-if="$store.state.globalSettings.disableStream" class="uk-position-center position-relative text-center">
Stream preview disabled
</div>
<div v-else class="uk-position-center position-relative text-center">
No active connection
</div>
</div> </div>
<div v-else-if="$store.state.globalSettings.disableStream" class="uk-position-center position-relative text-center">
Stream preview disabled
</div>
<div v-else class="uk-position-center position-relative text-center">
No active connection
</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() {