Improved performance a touch: fixed never clearing list of elements to recalculate unless a full gui recalcuate occurred, don't recalculate button/text if a full gui recalculate is requested, fixed typo: apend -> append

This commit is contained in:
2021-12-16 22:09:56 -06:00
parent cf91d4a083
commit 153871e7f3
4 changed files with 14 additions and 10 deletions

View File

@@ -86,9 +86,12 @@ module CyberarmEngine
old_width = width
old_height = height
recalculate
root.gui_state.request_recalculate if old_width != width || old_height != height
if old_width != width || old_height != height
root.gui_state.request_recalculate
else
recalculate
end
publish(:changed, self.value)
end

View File

@@ -45,7 +45,7 @@ module CyberarmEngine
root.gui_state.request_recalculate
end
def apend(&block)
def append(&block)
old_container = $__current_container__
$__current_container__ = self
@@ -194,9 +194,8 @@ module CyberarmEngine
if @scroll_position.y < 0
@scroll_position.y += @scroll_speed
@scroll_position.y = 0 if @scroll_position.y > 0
# recalculate
root.gui_state.request_recalculate_for(self)
root.gui_state.request_recalculate_for(self)
return :handled
end
@@ -210,9 +209,8 @@ module CyberarmEngine
if @scroll_position.y.abs < max_scroll_height
@scroll_position.y -= @scroll_speed
@scroll_position.y = -max_scroll_height if @scroll_position.y.abs > max_scroll_height
# recalculate
root.gui_state.request_recalculate_for(self)
root.gui_state.request_recalculate_for(self)
return :handled
end

View File

@@ -142,9 +142,12 @@ module CyberarmEngine
old_width = width
old_height = height
recalculate
root.gui_state.request_recalculate if old_width != width || old_height != height
if old_width != width || old_height != height
root.gui_state.request_recalculate
else
recalculate
end
publish(:changed, self.value)
end

View File

@@ -75,10 +75,10 @@ module CyberarmEngine
@root_container.recalculate
@pending_recalculate_request = false
@pending_element_recalculate_requests.clear # GUI has already been recalculated
end
@pending_element_recalculate_requests.each(&:recalculate)
@pending_element_recalculate_requests.clear
if @pending_focus_request
@pending_focus_request = false