From 20ce43e705cdc353fe1f794dd784cc23aa21dd23 Mon Sep 17 00:00:00 2001 From: rewin Date: Tue, 2 Apr 2024 20:20:16 +0300 Subject: [PATCH] fix overflow canvas --- studio-web/src/lib/canvas-provider.element.ts | 7 ++++--- studio/src/camera_controller.rs | 3 +-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/studio-web/src/lib/canvas-provider.element.ts b/studio-web/src/lib/canvas-provider.element.ts index a1a94d4..2fa8b27 100644 --- a/studio-web/src/lib/canvas-provider.element.ts +++ b/studio-web/src/lib/canvas-provider.element.ts @@ -75,9 +75,10 @@ export class CanvasProviderElement @on("keyup") _pipeKeyboardEvents(event: KeyboardEvent): void { if (event.repeat) return; - if (this.#canvas != null) { - // If we own the canvas, we're going to catch events emitting from the - // canvas and then repeat them, eventually causing a stack overflow + const canvas = document.getElementById(this.#canvasId); + if (canvas && event.target === canvas) { + // If this event originated from the Bevy canvas, repeating it will just + // cause an infinite feedback loop and a stack overflow return; } diff --git a/studio/src/camera_controller.rs b/studio/src/camera_controller.rs index 62c2644..205f56b 100644 --- a/studio/src/camera_controller.rs +++ b/studio/src/camera_controller.rs @@ -1,7 +1,7 @@ use std::f32::consts; use bevy::{ - prelude::*, render::camera::Viewport, window::{CursorGrabMode, PrimaryWindow} + prelude::*, window::{CursorGrabMode, PrimaryWindow} }; use crate::{ @@ -12,7 +12,6 @@ use crate::{ NearlyZero, Velocity, }, }; -use crate::MainCamera; pub struct CameraControllerPlugin;