Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Unified Diff: ui/app_list/views/app_list_view.cc

Issue 770813004: Make app list search box into a Widget. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@matt_remove_dummy_search_box
Patch Set: addTODO Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/app_list/views/app_list_view.h ('k') | ui/app_list/views/app_list_view_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/app_list/views/app_list_view.cc
diff --git a/ui/app_list/views/app_list_view.cc b/ui/app_list/views/app_list_view.cc
index b4006973053a518a0ab450171dd711da065ed720..c5f20b3b50ba041101d541ff9169083357cb0d05 100644
--- a/ui/app_list/views/app_list_view.cc
+++ b/ui/app_list/views/app_list_view.cc
@@ -156,10 +156,11 @@ class HideViewAnimationObserver : public ui::ImplicitAnimationObserver {
AppListView::AppListView(AppListViewDelegate* delegate)
: delegate_(delegate),
- app_list_main_view_(NULL),
- search_box_view_(NULL),
- speech_view_(NULL),
- overlay_view_(NULL),
+ app_list_main_view_(nullptr),
+ speech_view_(nullptr),
+ search_box_widget_(nullptr),
+ search_box_view_(nullptr),
+ overlay_view_(nullptr),
animation_observer_(new HideViewAnimationObserver()) {
CHECK(delegate);
@@ -218,6 +219,8 @@ void AppListView::InitAsFramelessWindow(gfx::NativeView parent,
// View::AddChildView() which is called at Widget::SetContentsView() to build
// the views hierarchy in the widget.
set_background(new AppListBackground(0, app_list_main_view_));
+
+ InitChildWidgets();
}
void AppListView::SetBubbleArrow(views::BubbleBorder::Arrow arrow) {
@@ -354,11 +357,12 @@ void AppListView::InitContents(gfx::NativeView parent, int initial_apps_page) {
app_list_main_view_->SetFillsBoundsOpaquely(false);
app_list_main_view_->layer()->SetMasksToBounds(true);
+ // This will be added to the |search_box_widget_| after the app list widget is
+ // initialized.
search_box_view_ = new SearchBoxView(app_list_main_view_, delegate_);
search_box_view_->SetPaintToLayer(true);
search_box_view_->SetFillsBoundsOpaquely(false);
search_box_view_->layer()->SetMasksToBounds(true);
- AddChildView(search_box_view_);
app_list_main_view_->Init(parent, initial_apps_page, search_box_view_);
@@ -375,6 +379,28 @@ void AppListView::InitContents(gfx::NativeView parent, int initial_apps_page) {
OnProfilesChanged();
}
+void AppListView::InitChildWidgets() {
+ DCHECK(search_box_view_);
+
+ app_list_main_view_->InitWidgets();
+
+ // Create the search box widget.
+ views::Widget::InitParams search_box_widget_params(
+ views::Widget::InitParams::TYPE_CONTROL);
+ search_box_widget_params.parent = GetWidget()->GetNativeView();
+ search_box_widget_params.opacity =
+ views::Widget::InitParams::TRANSLUCENT_WINDOW;
+
+ // Create a widget for the SearchBoxView to live in. This allows the
+ // SearchBoxView to be on top of the custom launcher page's WebContents
+ // (otherwise the search box events will be captured by the WebContents).
+ search_box_widget_ = new views::Widget;
+ search_box_widget_->Init(search_box_widget_params);
+ search_box_widget_->SetContentsView(search_box_view_);
+
+ Layout();
+}
+
void AppListView::InitAsBubbleInternal(gfx::NativeView parent,
int initial_apps_page,
views::BubbleBorder::Arrow arrow,
@@ -412,7 +438,7 @@ void AppListView::InitAsBubbleInternal(gfx::NativeView parent,
SetBubbleArrow(arrow);
// We can now create the internal widgets.
- app_list_main_view_->InitWidgets();
+ InitChildWidgets();
#if defined(USE_AURA)
// TODO(vadimt): Remove ScopedTracker below once crbug.com/431326 is fixed.
@@ -563,7 +589,10 @@ void AppListView::Layout() {
// in STATE_START.
gfx::RectF search_box_bounds = contents_view->GetDefaultSearchBoxBounds();
ConvertRectToTarget(contents_view, this, &search_box_bounds);
- search_box_view_->SetBoundsRect(gfx::ToNearestRect(search_box_bounds));
+ if (search_box_widget_) {
+ search_box_widget_->SetBounds(
+ ConvertRectToWidget(gfx::ToNearestRect(search_box_bounds)));
+ }
if (speech_view_) {
gfx::Rect speech_bounds = centered_bounds;
« no previous file with comments | « ui/app_list/views/app_list_view.h ('k') | ui/app_list/views/app_list_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698