From d1d87db070578fefe97f275b63157b4212a44a89 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Sun, 8 Jan 2023 03:36:33 -0600 Subject: [PATCH] Made GuiState#update safe to call when it is not the active state --- lib/cyberarm_engine/ui/gui_state.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/cyberarm_engine/ui/gui_state.rb b/lib/cyberarm_engine/ui/gui_state.rb index 95054c4..a4ddae2 100644 --- a/lib/cyberarm_engine/ui/gui_state.rb +++ b/lib/cyberarm_engine/ui/gui_state.rb @@ -96,9 +96,19 @@ module CyberarmEngine end @menu&.update + super + if @active_width != window.width || @active_height != window.height + request_recalculate + @root_container.publish(:window_size_changed) + end + + @active_width = window.width + @active_height = window.height + return unless window.has_focus? + return unless window.current_state == self new_mouse_over = @menu.hit_element?(window.mouse_x, window.mouse_y) if @menu new_mouse_over ||= @root_container.hit_element?(window.mouse_x, window.mouse_y) @@ -135,14 +145,6 @@ module CyberarmEngine @last_mouse_pos = Vector.new(window.mouse_x, window.mouse_y) @mouse_pos = @last_mouse_pos.clone - - if @active_width != window.width || @active_height != window.height - request_recalculate - @root_container.publish(:window_size_changed) - end - - @active_width = window.width - @active_height = window.height end def button_down(id)