Chromium Code Reviews| Index: ui/views/views_delegate.cc |
| diff --git a/ui/views/views_delegate.cc b/ui/views/views_delegate.cc |
| index 507b038a7b6e7547007a2a5112ae644b7171a3aa..4f9f599cbecbf9cac6e5a6c077dc2ca492866fa8 100644 |
| --- a/ui/views/views_delegate.cc |
| +++ b/ui/views/views_delegate.cc |
| @@ -12,18 +12,21 @@ |
| #endif |
| namespace views { |
| +namespace { |
| -ViewsDelegate::ViewsDelegate() |
| - : views_tsc_factory_(new ViewsTouchEditingControllerFactory) { |
| - ui::TouchEditingControllerFactory::SetInstance(views_tsc_factory_.get()); |
| +ViewsDelegate* g_views_delegate = nullptr; |
|
sky
2015/06/08 20:22:42
This isn't global, just views_delegate.
mohsen
2015/06/08 20:46:09
Interesting. I've seen several variables like this
|
| -#if defined(USE_AURA) |
| - touch_selection_menu_runner_.reset(new TouchSelectionMenuRunnerViews()); |
| -#endif |
| } |
| ViewsDelegate::~ViewsDelegate() { |
| - ui::TouchEditingControllerFactory::SetInstance(NULL); |
| + ui::TouchEditingControllerFactory::SetInstance(nullptr); |
| + |
| + DCHECK_EQ(this, g_views_delegate); |
| + g_views_delegate = nullptr; |
| +} |
| + |
| +ViewsDelegate* ViewsDelegate::GetInstance() { |
| + return g_views_delegate; |
| } |
| void ViewsDelegate::SaveWindowPlacement(const Widget* widget, |
| @@ -53,7 +56,7 @@ void ViewsDelegate::NotifyMenuItemFocused(const base::string16& menu_name, |
| #if defined(OS_WIN) |
| HICON ViewsDelegate::GetDefaultWindowIcon() const { |
| - return NULL; |
| + return nullptr; |
| } |
| bool ViewsDelegate::IsWindowInMetro(gfx::NativeWindow window) const { |
| @@ -61,13 +64,13 @@ bool ViewsDelegate::IsWindowInMetro(gfx::NativeWindow window) const { |
| } |
| #elif defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| gfx::ImageSkia* ViewsDelegate::GetDefaultWindowIcon() const { |
| - return NULL; |
| + return nullptr; |
| } |
| #endif |
| NonClientFrameView* ViewsDelegate::CreateDefaultNonClientFrameView( |
| Widget* widget) { |
| - return NULL; |
| + return nullptr; |
| } |
| void ViewsDelegate::AddRef() { |
| @@ -79,7 +82,7 @@ void ViewsDelegate::ReleaseRef() { |
| content::WebContents* ViewsDelegate::CreateWebContents( |
| content::BrowserContext* browser_context, |
| content::SiteInstance* site_instance) { |
| - return NULL; |
| + return nullptr; |
| } |
| base::TimeDelta ViewsDelegate::GetDefaultTextfieldObscuredRevealDuration() { |
| @@ -91,7 +94,7 @@ bool ViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) { |
| } |
| ui::ContextFactory* ViewsDelegate::GetContextFactory() { |
| - return NULL; |
| + return nullptr; |
| } |
| std::string ViewsDelegate::GetApplicationName() { |
| @@ -110,4 +113,16 @@ scoped_refptr<base::TaskRunner> ViewsDelegate::GetBlockingPoolTaskRunner() { |
| return nullptr; |
| } |
| +ViewsDelegate::ViewsDelegate() |
| + : views_tsc_factory_(new ViewsTouchEditingControllerFactory) { |
| + DCHECK(!g_views_delegate); |
| + g_views_delegate = this; |
| + |
| + ui::TouchEditingControllerFactory::SetInstance(views_tsc_factory_.get()); |
| + |
| +#if defined(USE_AURA) |
| + touch_selection_menu_runner_.reset(new TouchSelectionMenuRunnerViews()); |
| +#endif |
| +} |
| + |
| } // namespace views |