Index: chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc |
diff --git a/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc b/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc |
index 7f05865a54c54ac9c29cf84fbb3b09c5516566ec..b5e6a0c971a7eead9b9e935057a9d70e6784dfb2 100644 |
--- a/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc |
+++ b/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc |
@@ -7,17 +7,31 @@ |
#include "chrome/browser/chrome_browser_main.h" |
#include "chrome/browser/toolkit_extra_parts.h" |
#include "chrome/browser/ui/ash/ash_init.h" |
+#include "chrome/browser/ui/ash/ash_util.h" |
#include "ui/aura/desktop/desktop_screen.h" |
#include "ui/aura/desktop/desktop_stacking_client.h" |
#include "ui/aura/env.h" |
#include "ui/aura/single_display_manager.h" |
#include "ui/gfx/screen.h" |
+#include "ui/gfx/screen_type_delegate.h" |
#if defined(FILE_MANAGER_EXTENSION) |
#include "chrome/browser/ui/views/select_file_dialog_extension.h" |
#include "chrome/browser/ui/views/select_file_dialog_extension_factory.h" |
#endif |
+#if defined(OS_WIN) |
+class ScreenTypeDelegateWin : public gfx::ScreenTypeDelegate { |
+ public: |
+ gfx::ScreenType GetScreenTypeForNativeView(gfx::NativeView view) { |
+ return chrome::IsNativeViewInAsh(view) ? |
+ gfx::SCREEN_TYPE_ALTERNATE : |
+ gfx::SCREEN_TYPE_NATIVE; |
+ } |
+ private: |
+}; |
+#endif |
+ |
ChromeBrowserMainExtraPartsAsh::ChromeBrowserMainExtraPartsAsh() { |
} |
@@ -30,7 +44,11 @@ void ChromeBrowserMainExtraPartsAsh::PreProfileInit() { |
} else { |
aura::Env::GetInstance()->SetDisplayManager(new aura::SingleDisplayManager); |
stacking_client_.reset(new aura::DesktopStackingClient); |
- gfx::Screen::SetInstance(aura::CreateDesktopScreen()); |
+ gfx::Screen::SetInstance( |
+ gfx::SCREEN_TYPE_NATIVE, aura::CreateDesktopScreen()); |
+#if defined(OS_WIN) |
+ gfx::Screen::SetScreenTypeDelegate(new ScreenTypeDelegateWin); |
+#endif |
} |
#if defined(FILE_MANAGER_EXTENSION) |