diff --git a/src/csui/src/PlayerUiPanels/PlayerUiSettings.vue b/src/csui/src/PlayerUiPanels/PlayerUiSettings.vue
index c1a5908..d456009 100644
--- a/src/csui/src/PlayerUiPanels/PlayerUiSettings.vue
+++ b/src/csui/src/PlayerUiPanels/PlayerUiSettings.vue
@@ -22,7 +22,7 @@
-
+
Popup activator position:
@@ -56,7 +56,7 @@
-
setPlayerRestrictions('minEnabledWidth', event.target.value, true)"
+ @input="(event) => setPlayerRestrictions('maxEnabledWidth', event.target.value)"
+ @change="(event) => saveSettings()"
>
setPlayerRestrictions('minEnabledWidth', event.target.value)"
- @change="(event) => saveSettings()"
+ :value="maxEnabledWidth"
+ @input="(event) => setPlayerRestrictions('maxEnabledWidth', event.target.value, true)"
+ @change="(event) => saveSettings(true)"
>
@@ -95,12 +96,13 @@
min="0"
max="1"
step="0.01"
- @input="(event) => setPlayerRestrictions('minEnabledHeight', event.target.value, true)"
+ @input="(event) => setPlayerRestrictions('minEnabledHeight', event.target.value)"
+ @change="(event) => saveSettings()"
>
setPlayerRestrictions('minEnabledHeight', event.target.value)"
- @change="(event) => saveSettings()"
+ @input="(event) => setPlayerRestrictions('minEnabledHeight', event.target.value, true)"
+ @change="(event) => saveSettings(true)"
>
@@ -169,14 +171,46 @@ export default {
],
created() {
},
- mounted() {
+ computed: {
+ maxEnabledWidth() {
+ const v = this.settings.active.ui.inPlayer.maxEnabledWidth * 100;
+ return this.optionalToFixed(v, 0);
+ },
+ minEnabledHeight() {
+ const v = this.settings.active.ui.inPlayer.minEnabledHeight * 100;
+ return this.optionalToFixed(v, 0);
+ }
},
methods: {
- setUiPage(key, event) {
-
+ forcePositiveNumber(value) {
+ // Change EU format to US if needed
+ // | remove everything after second period if necessary
+ // | | | remove non-numeric characters
+ // | | | |
+ return value.replaceAll(',', '.').split('.', 2).join('.').replace(/[^0-9.]/g, '');
},
- saveSettings() {
+ optionalToFixed(v, n) {
+ if ((`${v}`.split('.')[1]?.length ?? 0) > n) {
+ return v.toFixed(n);
+ }
+ return v;
+ },
+ setPlayerRestrictions(key, value, isTextInput) {
+ if (isTextInput) {
+ value = (+this.forcePositiveNumber(value) / 100);
+ }
+ if (isNaN(+value)) {
+ value = 0.5;
+ }
+
+ this.settings.active.ui.inPlayer[key] = value;
+ },
+ saveSettings(forceRefresh) {
this.settings.saveWithoutReload();
+
+ if (forceRefresh) {
+ this.$nextTick( () => this.$forceRefresh() );
+ }
},
startTriggerZoneEdit() {
this.eventBus.send('start-trigger-zone-edit');