Commit b00685e3 authored by Tim Zheng's avatar Tim Zheng Committed by Commit Bot

Filter out tooltips and menus from shelf items.

BUG=chromium:839149
TEST=Verified manually on an eve device.

Change-Id: If25b73896c7049f20c565621c9c50aad39709acc
Reviewed-on: https://chromium-review.googlesource.com/1043357
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556149}
parent 4284f64f
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "ui/display/display.h" #include "ui/display/display.h"
#include "ui/display/manager/display_manager.h" #include "ui/display/manager/display_manager.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#include "ui/wm/core/window_util.h"
CrostiniAppWindowShelfController::CrostiniAppWindowShelfController( CrostiniAppWindowShelfController::CrostiniAppWindowShelfController(
ChromeLauncherController* owner) ChromeLauncherController* owner)
...@@ -104,12 +105,18 @@ void CrostiniAppWindowShelfController::ActiveUserChanged( ...@@ -104,12 +105,18 @@ void CrostiniAppWindowShelfController::ActiveUserChanged(
void CrostiniAppWindowShelfController::OnWindowInitialized( void CrostiniAppWindowShelfController::OnWindowInitialized(
aura::Window* window) { aura::Window* window) {
// An Crostini window has type WINDOW_TYPE_NORMAL, a WindowDelegate and // An Crostini window has type WINDOW_TYPE_NORMAL, a WindowDelegate and
// is a top level views widget. // is a top level views widget. Tooltips, menus, and other kinds of transient
// windows that can't activate are filtered out.
if (window->type() != aura::client::WINDOW_TYPE_NORMAL || !window->delegate()) if (window->type() != aura::client::WINDOW_TYPE_NORMAL || !window->delegate())
return; return;
views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window);
if (!widget || !widget->is_top_level()) if (!widget || !widget->is_top_level())
return; return;
if (wm::GetTransientParent(window) != nullptr)
return;
if (!widget->CanActivate())
return;
observed_windows_.push_back(window); observed_windows_.push_back(window);
window->AddObserver(this); window->AddObserver(this);
......
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