commit | 1a445c214a5eb2687dc283b20ca9194098ea4686 | [log] [tgz] |
---|---|---|
author | Scott Violet <sky@chromium.org> | Mon Sep 18 18:51:37 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Sep 18 18:51:37 2017 |
tree | f9669cbff8b1782dfdbf8f6bca99396e0e444a1d | |
parent | d52f917437fd2fabbcd024046e30dbd47ce60421 [diff] |
chromeos: fixs focus related issues There are a couple of changes here: . FocusSynchronizer should reset the active focus client when focus is lost. This is effectively a signal that the active window is no longer active. . DesktopWindowTreeHostMus should key off OnActiveFocusClientChanged() to set it's active/inactive state. Mus only maintains the notion of focus and leaves activation up to clients. So, when the active focus client changes it means either the widget is gaining or losing activation. . Renamed DesktopWindowTreeHost::OnNativeWidgetActivationChanged() to OnActiveWindowChanged. The NativeWidget here is too confusing with the function of the same name on Widget and NativeWidgetDelegate. I considered OnActivationClientActiveWindowChanged() to be more specific, but that is slightly misleading because this observer isn't installed on the ActivationClient directly. . DesktopWindowTreeHostMus::OnActiveWindowChanged() needs to potentially reset the active focus client. This function is called when the active window at the wm::FocusController changes. This can correspond to a local change that needs to propagate to mus. By resetting the active focus client we ensure that happens. . DesktopWindowTreeHostMus::Deactivate() waited for async processing. I've changed it to immediately reset active status. BUG=730890 TEST=covered by tests Change-Id: I5df638f8b73279d12c10b1492d9a1567145d140f Reviewed-on: https://chromium-review.googlesource.com/669951 Reviewed-by: Elliot Glaysher <erg@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#502623}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .