summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/browser_window_gtk.cc
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 22:23:02 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-10 22:23:02 +0000
commitdd14da8f2d18c8f9b6a6c0a9b2bb4e03da92c90c (patch)
tree418b5e52f4908e3087e87a7c26dd227f4a52f0be /chrome/browser/gtk/browser_window_gtk.cc
parent21116a3982fa6a87189cdd0333315e8f74b36acc (diff)
downloadchromium_src-dd14da8f2d18c8f9b6a6c0a9b2bb4e03da92c90c.zip
chromium_src-dd14da8f2d18c8f9b6a6c0a9b2bb4e03da92c90c.tar.gz
chromium_src-dd14da8f2d18c8f9b6a6c0a9b2bb4e03da92c90c.tar.bz2
GTK: Always use default frame in popup windows.
Now that glen@ has spoken, make popup windows on linux match the XP behaviour by never using themed resources for the window frame. BUG=43938 TEST=none Review URL: http://codereview.chromium.org/2771011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49458 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/browser_window_gtk.cc')
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc42
1 files changed, 21 insertions, 21 deletions
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc
index db11ef6..5d2b7f0 100644
--- a/chrome/browser/gtk/browser_window_gtk.cc
+++ b/chrome/browser/gtk/browser_window_gtk.cc
@@ -556,18 +556,12 @@ void BrowserWindowGtk::DrawPopupFrame(cairo_t* cr,
GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom(
browser()->profile());
- // In popups, we use the tab images for the background, as that's legible
- // for text to be written on.
- int image_name;
- if (IsActive()) {
- image_name = IDR_THEME_TOOLBAR;
- } else {
- bool off_the_record = browser()->profile()->IsOffTheRecord();
- image_name = off_the_record ? IDR_THEME_TAB_BACKGROUND_INCOGNITO :
- IDR_THEME_TAB_BACKGROUND;
- }
-
- CairoCachedSurface* surface = theme_provider->GetSurfaceNamed(
+ // Like DrawCustomFrame(), except that we use the unthemed resources to draw
+ // the background. We do this because we can't rely on sane images in the
+ // theme that we can draw text on. (We tried using the tab background, but
+ // that has inverse saturation from what the user usually expects).
+ int image_name = GetThemeFrameResource();
+ CairoCachedSurface* surface = theme_provider->GetUnthemedSurfaceNamed(
image_name, widget);
if (event->area.y < surface->Height()) {
surface->SetSource(cr,
@@ -586,14 +580,7 @@ void BrowserWindowGtk::DrawCustomFrame(cairo_t* cr,
GtkThemeProvider* theme_provider = GtkThemeProvider::GetFrom(
browser()->profile());
- bool off_the_record = browser()->profile()->IsOffTheRecord();
- int image_name;
- if (IsActive()) {
- image_name = off_the_record ? IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME;
- } else {
- image_name = off_the_record ? IDR_THEME_FRAME_INCOGNITO_INACTIVE :
- IDR_THEME_FRAME_INACTIVE;
- }
+ int image_name = GetThemeFrameResource();
CairoCachedSurface* surface = theme_provider->GetSurfaceNamed(
image_name, widget);
@@ -609,7 +596,7 @@ void BrowserWindowGtk::DrawCustomFrame(cairo_t* cr,
}
if (theme_provider->HasCustomImage(IDR_THEME_FRAME_OVERLAY) &&
- !off_the_record) {
+ !browser()->profile()->IsOffTheRecord()) {
CairoCachedSurface* theme_overlay = theme_provider->GetSurfaceNamed(
IsActive() ? IDR_THEME_FRAME_OVERLAY
: IDR_THEME_FRAME_OVERLAY_INACTIVE, widget);
@@ -618,6 +605,19 @@ void BrowserWindowGtk::DrawCustomFrame(cairo_t* cr,
}
}
+int BrowserWindowGtk::GetThemeFrameResource() {
+ bool off_the_record = browser()->profile()->IsOffTheRecord();
+ int image_name;
+ if (IsActive()) {
+ image_name = off_the_record ? IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME;
+ } else {
+ image_name = off_the_record ? IDR_THEME_FRAME_INCOGNITO_INACTIVE :
+ IDR_THEME_FRAME_INACTIVE;
+ }
+
+ return image_name;
+}
+
void BrowserWindowGtk::Show() {
// The Browser associated with this browser window must become the active
// browser at the time Show() is called. This is the natural behaviour under