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 |