Currently mus+ash handles two types of modality: - Modal to transient parent - System modals But there is a 3rd type of modal windows where window is modal to children of its transient parent. We should handle this in mus+ash.
I downgraded as this is not critical for mushrome as there is only one client of mus in mushrome.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7b688d7b7a6e9ce4d720028b198a099bd760ead8 commit 7b688d7b7a6e9ce4d720028b198a099bd760ead8 Author: Scott Violet <sky@chromium.org> Date: Thu Aug 03 23:09:09 2017 chromeos: makes window manager correctly deal with modal windows This changes the following: . child modal windows are now correctly dealt with. . previously if the target of an event was blocked by a modal window, then the event was targetted at the modal window. This patch makes it so that either the event is not dispatched, or the event falls back to the root (behavior dictated by flag in EventDispatcher). This patch brings the handling of modal windows in line with ui/wm/core/WindowModalityController and closer to that of RootWindowController::RootWindowController::CanWindowReceiveEvents(). I still need more wiring to implement rest of logic in RootWindowController::CanWindowReceiveEvents(). BUG= 692282 , 697127 TEST=covered by tests Change-Id: I9af1b6d214b489e5819a2452d734754b890ba0da Reviewed-on: https://chromium-review.googlesource.com/596548 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#491870} [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/public/interfaces/window_tree.mojom [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/BUILD.gn [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/access_policy.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/default_access_policy.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/default_access_policy.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/display.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/display.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/event_dispatcher.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/event_dispatcher.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/event_dispatcher_delegate.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/event_dispatcher_unittest.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/focus_controller.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/focus_controller.h [delete] https://crrev.com/d07794506ed64430f85c18824253897740e86e63/services/ui/ws/focus_controller_delegate.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/focus_controller_unittest.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/modal_window_controller.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/modal_window_controller.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/server_window.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/server_window.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/test_utils.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_manager_access_policy.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_manager_access_policy.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_manager_state.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_manager_state.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_manager_state_unittest.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_server.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_tree.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_tree.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/services/ui/ws/window_tree_unittest.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/aura/client/aura_constants.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/aura/client/aura_constants.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/aura/mus/in_flight_change.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/aura/mus/window_tree_client.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/aura/test/mus/test_window_tree.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/aura/test/mus/test_window_tree.h [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/wm/core/window_modality_controller.cc [modify] https://crrev.com/7b688d7b7a6e9ce4d720028b198a099bd760ead8/ui/wm/public/activation_client.cc
Comment 1 by moshayedi@chromium.org
, Jun 19 2017Owner: ----