Commit 93e02afb authored by Sammie Quon's avatar Sammie Quon Committed by Commit Bot

applist: Do not handle events on the window during overview.

The app list view already skips events during overview, but this is not
enough because the app list window still consumes the tap event, and
then gets activating, exiting overview. Its ok now as we'd want to exit
overview anyways, but we're introducing side scrolling soon, so we need
the tap down event to not exit overview.

SearchBox view now does not need to check if we are in overview anymore,
since searchbox widget is a child of AppList window.

Test: manual
Bug: 991040
Change-Id: Ice13a42eff72a5897fb4ba44cb56152aee57e479
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1737823Reviewed-by: default avatarAlex Newcomer <newcomer@chromium.org>
Commit-Queue: Sammie Quon <sammiequon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684402}
parent 838e9d27
...@@ -160,12 +160,16 @@ DEFINE_UI_CLASS_PROPERTY_KEY(bool, kExcludeWindowFromEventHandling, false) ...@@ -160,12 +160,16 @@ DEFINE_UI_CLASS_PROPERTY_KEY(bool, kExcludeWindowFromEventHandling, false)
// RenderHostWindow in order to handle events in context of app list. // RenderHostWindow in order to handle events in context of app list.
class AppListEventTargeter : public aura::WindowTargeter { class AppListEventTargeter : public aura::WindowTargeter {
public: public:
AppListEventTargeter() = default; explicit AppListEventTargeter(AppListViewDelegate* delegate)
: delegate_(delegate) {}
~AppListEventTargeter() override = default; ~AppListEventTargeter() override = default;
// aura::WindowTargeter: // aura::WindowTargeter:
bool SubtreeShouldBeExploredForEvent(aura::Window* window, bool SubtreeShouldBeExploredForEvent(aura::Window* window,
const ui::LocatedEvent& event) override { const ui::LocatedEvent& event) override {
if (delegate_ && !delegate_->CanProcessEventsOnApplistViews())
return false;
if (window->GetProperty(kExcludeWindowFromEventHandling)) { if (window->GetProperty(kExcludeWindowFromEventHandling)) {
// Allow routing to sub-windows for ET_MOUSE_MOVED event which is used by // Allow routing to sub-windows for ET_MOUSE_MOVED event which is used by
// accessibility to enter the mode of exploration of WebView contents. // accessibility to enter the mode of exploration of WebView contents.
...@@ -184,6 +188,8 @@ class AppListEventTargeter : public aura::WindowTargeter { ...@@ -184,6 +188,8 @@ class AppListEventTargeter : public aura::WindowTargeter {
} }
private: private:
AppListViewDelegate* delegate_; // Weak. Owned by AppListService.
DISALLOW_COPY_AND_ASSIGN(AppListEventTargeter); DISALLOW_COPY_AND_ASSIGN(AppListEventTargeter);
}; };
...@@ -582,7 +588,7 @@ void AppListView::InitWidget(gfx::NativeView parent) { ...@@ -582,7 +588,7 @@ void AppListView::InitWidget(gfx::NativeView parent) {
widget->Init(std::move(params)); widget->Init(std::move(params));
DCHECK_EQ(widget, GetWidget()); DCHECK_EQ(widget, GetWidget());
widget->GetNativeWindow()->SetEventTargeter( widget->GetNativeWindow()->SetEventTargeter(
std::make_unique<AppListEventTargeter>()); std::make_unique<AppListEventTargeter>(delegate_));
// Enable arrow key in FocusManager. Arrow left/right and up/down triggers // Enable arrow key in FocusManager. Arrow left/right and up/down triggers
// the same focus movement as tab/shift+tab. // the same focus movement as tab/shift+tab.
...@@ -705,13 +711,6 @@ const char* AppListView::GetClassName() const { ...@@ -705,13 +711,6 @@ const char* AppListView::GetClassName() const {
return "AppListView"; return "AppListView";
} }
bool AppListView::CanProcessEventsWithinSubtree() const {
if (!delegate_->CanProcessEventsOnApplistViews())
return false;
return views::View::CanProcessEventsWithinSubtree();
}
bool AppListView::AcceleratorPressed(const ui::Accelerator& accelerator) { bool AppListView::AcceleratorPressed(const ui::Accelerator& accelerator) {
switch (accelerator.key_code()) { switch (accelerator.key_code()) {
case ui::VKEY_ESCAPE: case ui::VKEY_ESCAPE:
......
...@@ -172,7 +172,6 @@ class APP_LIST_EXPORT AppListView : public views::WidgetDelegateView, ...@@ -172,7 +172,6 @@ class APP_LIST_EXPORT AppListView : public views::WidgetDelegateView,
// views::View: // views::View:
void OnPaint(gfx::Canvas* canvas) override; void OnPaint(gfx::Canvas* canvas) override;
const char* GetClassName() const override; const char* GetClassName() const override;
bool CanProcessEventsWithinSubtree() const override;
bool AcceleratorPressed(const ui::Accelerator& accelerator) override; bool AcceleratorPressed(const ui::Accelerator& accelerator) override;
void Layout() override; void Layout() override;
......
...@@ -223,13 +223,6 @@ const char* SearchBoxView::GetClassName() const { ...@@ -223,13 +223,6 @@ const char* SearchBoxView::GetClassName() const {
return "SearchBoxView"; return "SearchBoxView";
} }
bool SearchBoxView::CanProcessEventsWithinSubtree() const {
if (!view_delegate_->CanProcessEventsOnApplistViews())
return false;
return views::View::CanProcessEventsWithinSubtree();
}
// static // static
int SearchBoxView::GetFocusRingSpacing() { int SearchBoxView::GetFocusRingSpacing() {
return kSearchBoxFocusRingWidth + kSearchBoxFocusRingPadding; return kSearchBoxFocusRingWidth + kSearchBoxFocusRingPadding;
......
...@@ -65,7 +65,6 @@ class APP_LIST_EXPORT SearchBoxView : public search_box::SearchBoxViewBase, ...@@ -65,7 +65,6 @@ class APP_LIST_EXPORT SearchBoxView : public search_box::SearchBoxViewBase,
void GetAccessibleNodeData(ui::AXNodeData* node_data) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
void OnPaintBackground(gfx::Canvas* canvas) override; void OnPaintBackground(gfx::Canvas* canvas) override;
const char* GetClassName() const override; const char* GetClassName() const override;
bool CanProcessEventsWithinSubtree() const override;
// Overridden from views::ButtonListener: // Overridden from views::ButtonListener:
void ButtonPressed(views::Button* sender, const ui::Event& event) override; void ButtonPressed(views::Button* sender, const ui::Event& event) override;
......
...@@ -22,8 +22,6 @@ void OverviewGridPreEventHandler::OnMouseEvent(ui::MouseEvent* event) { ...@@ -22,8 +22,6 @@ void OverviewGridPreEventHandler::OnMouseEvent(ui::MouseEvent* event) {
} }
void OverviewGridPreEventHandler::OnGestureEvent(ui::GestureEvent* event) { void OverviewGridPreEventHandler::OnGestureEvent(ui::GestureEvent* event) {
// TODO(sammiequon): Investigate why scrolling on the bottom of the grid exits
// overview.
switch (event->type()) { switch (event->type()) {
case ui::ET_GESTURE_TAP: case ui::ET_GESTURE_TAP:
HandleClickOrTap(event); HandleClickOrTap(event);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment