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 195460aba4b4491a88cef62987e978df37edb18e..3243d7b54afec82bbfbbb0d8d6f93d5672e31a87 100644 |
--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
+++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
@@ -7,6 +7,7 @@ |
#include <set> |
#include "base/command_line.h" |
+#include "base/environment.h" |
#include "base/i18n/rtl.h" |
#include "base/logging.h" |
#include "base/nix/mime_util_xdg.h" |
@@ -342,10 +343,32 @@ bool Gtk2UI::GetColor(int id, SkColor* color) const { |
return false; |
} |
+bool Gtk2UI::HasCustomImage(int id) const { |
+ return IsOverridableImage(id); |
+} |
+ |
ui::NativeTheme* Gtk2UI::GetNativeTheme() const { |
return NativeThemeGtk2::instance(); |
} |
+bool Gtk2UI::GetDefaultUsesSystemTheme() const { |
+ scoped_ptr<base::Environment> env(base::Environment::Create()); |
+ |
+ switch (base::nix::GetDesktopEnvironment(env.get())) { |
+ case base::nix::DESKTOP_ENVIRONMENT_GNOME: |
+ case base::nix::DESKTOP_ENVIRONMENT_UNITY: |
+ case base::nix::DESKTOP_ENVIRONMENT_XFCE: |
+ return true; |
+ case base::nix::DESKTOP_ENVIRONMENT_KDE3: |
+ case base::nix::DESKTOP_ENVIRONMENT_KDE4: |
+ case base::nix::DESKTOP_ENVIRONMENT_OTHER: |
+ return false; |
+ } |
+ // Unless GetDesktopEnvironment() badly misbehaves, this should never happen. |
+ NOTREACHED(); |
+ return false; |
+} |
+ |
ui::SelectFileDialog* Gtk2UI::CreateSelectFileDialog( |
ui::SelectFileDialog::Listener* listener, |
ui::SelectFilePolicy* policy) const { |