New issue
Advanced search Search tips

Issue 608570 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Eliminate event.target use from TrayEventFilter

Project Member Reported by jamescook@chromium.org, May 3 2016

Issue description

After the switch to mus PointerWatcher will no longer provide an event.target for located events.

This code may not even be necessary, as the conditions it is checking for may be handled by the bounds testing code at the bottom of ProcessLocatedEvent().

If we still need it we'll need a way to find the aura::Window target of an event, perhaps similar to WmRootWindowController::FindEventTarget().

(We can get the display from FindDisplayNearest(), then
WindowTreeHostManager::GetRootWindowForDisplayId())

 
Project Member

Comment 1 by bugdroid1@chromium.org, May 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa

commit e9f5f0c1aa477afc87c4c42004d6f5f1077048fa
Author: jamescook <jamescook@chromium.org>
Date: Mon May 09 18:22:14 2016

mash: Don't close system tray bubble for clicks in menus/notifications

* Plumb the hit mus::Window through the client WindowManagerConnection event
  observers
* Add the hit widget to PointerWatcher.
* Remove the event from PointerWatcher, since the target isn't valid on mus
  and the client cannot set handled or stop propagation.
* Add ContainerDelegate to ash to allow checking if a given widget is in a
  particular window container.
* Convert TrayEventFilter to use the new container delegate.

BUG= 608570 , 599142 
TEST=existing ash_unittests, views_mus_unittests
TBR=ben@chromium.org for no-op method signature change in content/renderer/mus/

Review-Url: https://codereview.chromium.org/1957653003
Cr-Commit-Position: refs/heads/master@{#392366}

[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/ash.gyp
[add] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/container_delegate.h
[add] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/container_delegate_aura.cc
[add] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/container_delegate_aura.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/mus/BUILD.gn
[add] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/mus/container_delegate_mus.cc
[add] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/mus/container_delegate_mus.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/mus/shell_delegate_mus.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/mus/shell_delegate_mus.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/pointer_watcher_delegate_aura.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/pointer_watcher_delegate_aura.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shelf/overflow_bubble.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shelf/overflow_bubble.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shelf/shelf_tooltip_manager.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shelf/shelf_tooltip_manager.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shell.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shell.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shell/shell_delegate_impl.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shell/shell_delegate_impl.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/shell_delegate.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/system/status_area_widget.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/system/status_area_widget.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/system/tray/tray_event_filter.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/system/tray/tray_event_filter.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/test/test_shell_delegate.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ash/test/test_shell_delegate.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/chrome/browser/ui/ash/chrome_shell_delegate.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/chrome/browser/ui/ash/chrome_shell_delegate.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/demo/mus_demo.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/demo/mus_demo.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/public/cpp/lib/window_tree_client_impl.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/public/cpp/tests/window_server_test_base.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/public/cpp/tests/window_server_test_base.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/public/cpp/tests/window_tree_client_impl_unittest.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/components/mus/public/cpp/window_tree_delegate.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/content/renderer/mus/compositor_mus_connection.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/content/renderer/mus/compositor_mus_connection.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/mash/wm/root_window_controller.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/mash/wm/root_window_controller.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/mash/wm/window_manager_unittest.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ui/views/mus/native_widget_mus.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ui/views/mus/native_widget_mus.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ui/views/mus/window_manager_connection.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ui/views/mus/window_manager_connection.h
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ui/views/mus/window_manager_connection_unittest.cc
[modify] https://crrev.com/e9f5f0c1aa477afc87c4c42004d6f5f1077048fa/ui/views/pointer_watcher.h

Status: Fixed (was: Assigned)
PointerWatcher now provides the target widget. Attempting to find it from a screen position doesn't work because the app/client doesn't know the window Z order, even of its own windows.

Bulk verified
Status: Verified (was: Fixed)
bulk verified
Components: -MUS Internals>Services>WindowService

Sign in to add a comment