From f140ed279bc784de471672fc3c3575adc5e0e609 Mon Sep 17 00:00:00 2001 From: isark Date: Tue, 15 Aug 2023 08:28:55 +0200 Subject: [PATCH] Fixed some startup issue where the overlay shows prematurely --- src-tauri/src/main.rs | 1 - src/app/app.component.ts | 3 ++- .../plan-display/plan-display.component.ts | 26 +++++++++++++------ src/app/services/overlay.service.ts | 2 +- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 48c75d6..db05b66 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -34,7 +34,6 @@ mod storage; #[tauri::command] fn set_interactable(interactable: bool, state: tauri::State>) { - log::info!("set_interactable: {interactable:?}"); if interactable { state.send(overlay::State::Interactable {}.into()).ok(); } else { diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 41096ee..c26535a 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -21,6 +21,7 @@ export class AppComponent implements OnInit { isBinding: boolean = false; isOverlay: boolean; overlayShowSettings: boolean = false; + hasAttachedOnce: boolean = false; constructor( public overlayService: OverlayService, @@ -33,6 +34,6 @@ export class AppComponent implements OnInit { } ngOnInit(): void { - + } } \ No newline at end of file diff --git a/src/app/plan-display/plan-display.component.ts b/src/app/plan-display/plan-display.component.ts index 3544554..d657929 100644 --- a/src/app/plan-display/plan-display.component.ts +++ b/src/app/plan-display/plan-display.component.ts @@ -15,8 +15,9 @@ import { ResizedEvent } from 'angular-resize-event'; import { from } from 'rxjs'; import { open } from '@tauri-apps/api/dialog'; import { OverlayRef } from '@angular/cdk/overlay'; -import { OverlayService } from '../services/overlay.service'; +import { OverlayService, StateEvent } from '../services/overlay.service'; import { appWindow } from '@tauri-apps/api/window'; +import { EventsService } from '../services/events.service'; @Component({ selector: 'plan-display', @@ -36,14 +37,23 @@ export class PlanDisplayComponent implements AfterViewInit, OnInit { worldAreaMap?: Map; settingsOpen: boolean = false; init: boolean = false; - - constructor(private configService: ConfigService, private cdr: ChangeDetectorRef, private shortcut: ShortcutService, public planService: PlanService, public worldAreaService: WorldAreaService, public overlayService: OverlayService) { + hasAttachedOnce: boolean = false; + + constructor(private events: EventsService, private configService: ConfigService, private cdr: ChangeDetectorRef, private shortcut: ShortcutService, public planService: PlanService, public worldAreaService: WorldAreaService, public overlayService: OverlayService) { // for (let i = 0; i < 100; i++) { - // this.slides.push(i); - // } - window.addEventListener("resize", this.windowInitHandler.bind(this)); - overlayService.setInteractable(); - + // this.slides.push(i); + // } + window.addEventListener("resize", this.windowInitHandler.bind(this)); + const test = this.events.listen("OverlayStateChange").subscribe(event => { + if (!this.hasAttachedOnce) { + this.hasAttachedOnce = true; + test.unsubscribe(); + if(!event.payload.Hidden) + overlayService.setInteractable(); + } + + }); + appWindow.listen("entered", (entered) => { console.log("entered", entered); if (this.planService.currentPlan) { diff --git a/src/app/services/overlay.service.ts b/src/app/services/overlay.service.ts index f103013..312d584 100644 --- a/src/app/services/overlay.service.ts +++ b/src/app/services/overlay.service.ts @@ -6,7 +6,7 @@ import { invoke } from '@tauri-apps/api'; import { ConfigService } from './config.service'; import { appWindow } from '@tauri-apps/api/window'; -class StateEvent { +export class StateEvent { Visible?: any; Interactable?: any; Hidden?: any;