diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-10 22:23:02 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-10 22:23:02 +0000 |
commit | dd14da8f2d18c8f9b6a6c0a9b2bb4e03da92c90c (patch) | |
tree | 418b5e52f4908e3087e87a7c26dd227f4a52f0be /chrome/browser/gtk/browser_window_gtk.cc | |
parent | 21116a3982fa6a87189cdd0333315e8f74b36acc (diff) | |
download | chromium_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.cc | 42 |
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 |