Correctly return value if the event is catched by a widget

Also dont call run method on panels if they are hidden