Commit 7fa479af authored by sky's avatar sky Committed by Commit bot

Adds calls to NativeWidgetFactory

These two places may create native_widgets. We want to route to the
factory first, else the wrong thing can happen.

BUG=581198
TEST=none
R=ben@chromium.org

Review URL: https://codereview.chromium.org/1686153003

Cr-Commit-Position: refs/heads/master@{#374719}
parent bbeb329a
...@@ -323,6 +323,12 @@ void ChromeViewsDelegate::OnBeforeWidgetInit( ...@@ -323,6 +323,12 @@ void ChromeViewsDelegate::OnBeforeWidgetInit(
if (params->native_widget) if (params->native_widget)
return; return;
if (!native_widget_factory().is_null()) {
params->native_widget = native_widget_factory().Run(*params, delegate);
if (params->native_widget)
return;
}
#if defined(USE_AURA) && !defined(OS_CHROMEOS) #if defined(USE_AURA) && !defined(OS_CHROMEOS)
bool use_non_toplevel_window = bool use_non_toplevel_window =
params->parent && params->parent &&
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include "ui/views/controls/image_view.h" #include "ui/views/controls/image_view.h"
#include "ui/views/controls/textfield/textfield.h" #include "ui/views/controls/textfield/textfield.h"
#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/fill_layout.h"
#include "ui/views/views_delegate.h"
#include "ui/views/widget/widget.h" #include "ui/views/widget/widget.h"
#if defined(USE_AURA) #if defined(USE_AURA)
...@@ -588,8 +589,15 @@ void AppListView::InitAsBubbleInternal(gfx::NativeView parent, ...@@ -588,8 +589,15 @@ void AppListView::InitAsBubbleInternal(gfx::NativeView parent,
void AppListView::OnBeforeBubbleWidgetInit( void AppListView::OnBeforeBubbleWidgetInit(
views::Widget::InitParams* params, views::Widget::InitParams* params,
views::Widget* widget) const { views::Widget* widget) const {
if (!params->native_widget) {
views::ViewsDelegate* views_delegate = views::ViewsDelegate::GetInstance();
if (views_delegate && !views_delegate->native_widget_factory().is_null()) {
params->native_widget =
views_delegate->native_widget_factory().Run(*params, widget);
}
}
#if defined(USE_AURA) && !defined(OS_CHROMEOS) #if defined(USE_AURA) && !defined(OS_CHROMEOS)
if (delegate_ && delegate_->ForceNativeDesktop()) if (!params->native_widget && delegate_ && delegate_->ForceNativeDesktop())
params->native_widget = new views::DesktopNativeWidgetAura(widget); params->native_widget = new views::DesktopNativeWidgetAura(widget);
#endif #endif
#if defined(OS_WIN) #if defined(OS_WIN)
......
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