Index: chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
diff --git a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
index 1feebbc86c7c69b95fa71ae125d64188257d3619..e62044056d9dd6469c28945e6266b4814530b572 100644 |
--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
+++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
@@ -12,6 +12,7 @@ |
#include "base/i18n/rtl.h" |
#include "base/logging.h" |
#include "base/nix/mime_util_xdg.h" |
+#include "base/prefs/pref_service.h" |
#include "base/stl_util.h" |
#include "base/strings/stringprintf.h" |
#include "chrome/browser/themes/theme_properties.h" |
@@ -29,6 +30,8 @@ |
#include "chrome/browser/ui/libgtk2ui/skia_utils_gtk2.h" |
#include "chrome/browser/ui/libgtk2ui/unity_service.h" |
#include "chrome/browser/ui/libgtk2ui/x11_input_method_context_impl_gtk2.h" |
+#include "chrome/browser/ui/views/frame/browser_view.h" |
+#include "chrome/common/pref_names.h" |
#include "grit/theme_resources.h" |
#include "grit/ui_resources.h" |
#include "printing/printing_context_linux.h" |
@@ -43,6 +46,7 @@ |
#include "ui/gfx/size.h" |
#include "ui/gfx/skbitmap_operations.h" |
#include "ui/gfx/skia_util.h" |
+#include "ui/native_theme/native_theme_aura.h" |
#include "ui/views/linux_ui/window_button_order_observer.h" |
#if defined(USE_GCONF) |
@@ -449,8 +453,18 @@ double Gtk2UI::GetCursorBlinkInterval() const { |
return cursor_blink ? (cursor_blink_time / kGtkCursorBlinkCycleFactor) : 0.0; |
} |
-ui::NativeTheme* Gtk2UI::GetNativeTheme() const { |
- return NativeThemeGtk2::instance(); |
+ui::NativeTheme* Gtk2UI::GetNativeTheme(aura::Window* window) const { |
+ Profile* profile = NULL; |
+ if (window->type() == ui::wm::WINDOW_TYPE_NORMAL || |
+ window->type() == ui::wm::WINDOW_TYPE_POPUP) { |
+ profile = reinterpret_cast<Profile*>( |
+ window->GetNativeWindowProperty(Profile::kProfileKey)); |
Elliot Glaysher
2014/04/21 22:43:20
I sort of worry about destruction order issues her
Evan Stade
2014/04/22 18:33:22
I believe this to be correct.
|
+ } |
+ |
+ if (profile && !profile->GetPrefs()->GetBoolean(prefs::kUsesSystemTheme)) |
+ return ui::NativeThemeAura::instance(); |
+ else |
+ return NativeThemeGtk2::instance(); |
} |
bool Gtk2UI::GetDefaultUsesSystemTheme() const { |