aura::WindowEventDispatcher mutates aura::Env that is checked by OnEvent flow |
||
Issue descriptionIn order for NativeWidgetMus to dispatch events via its own OnEvent flow it needs event handling code to see a consistent state. Currently, that means ensuring that aura::Env contains the correct values for, for example, in-flight mouse events. E.g.: If NativeWidgetMus dispatches mouse-pressed events manually via its OnEvent interface, we eventually end up here: https://code.google.com/p/chromium/codesearch#chromium/src/ui/views/widget/widget.cc&q=widget.cc&sq=package:chromium&l=1188, where internal::NativeWidgetPrivate::IsMouseButtonDown() fails because the dispatch flow here: https://code.google.com/p/chromium/codesearch#chromium/src/ui/aura/window_event_dispatcher.cc&l=854 never ran. In the mus case, we do not wish to exercise the entire WindowEventDispatcher flow, but we do need to keep things in a correct state for the Widget. After discussing this with sadrul@chromium.org, we planned that WindowEventDispatcher can own an instance of an interface that accesses aura::Env on its behalf. NativeWidgetMus can have its own instance that is will use to ensure consistent state for its event dispatch.
,
Jul 25 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, Jun 20 2016