Merge new widget eventing system into the main branch

Pull request is used instead of normal merging for test purposes.