Added support for 9 sliced backgrounds in UI, fixed events not propagating to subscribers if element threw :handled in its own event handler

This commit is contained in:
2021-06-04 03:00:31 +00:00
parent bd54fafc3f
commit cdee6548e3
4 changed files with 92 additions and 29 deletions

View File

@@ -15,12 +15,19 @@ module CyberarmEngine
return unless enabled?
return :handled if respond_to?(event) && (send(event, self, *args) == :handled)
was_handled = false
was_handled = true if respond_to?(event) && (send(event, self, *args) == :handled)
@event_handler[event].reverse_each do |handler|
return :handled if handler.call(self, *args) == :handled
if handler.call(self, *args) == :handled
was_handled = true
break
end
end
return :handled if was_handled
parent.publish(event, *args) if parent
nil
end