summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/browser_window_gtk.cc
diff options
context:
space:
mode:
authortc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-22 20:56:15 +0000
committertc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-22 20:56:15 +0000
commiteeb49f7211391245d1468ca5b2ec16cb430fbd41 (patch)
tree62018ba939cec89df4901bfd7e1d3d18bb433fd9 /chrome/browser/gtk/browser_window_gtk.cc
parent0ee2861b2b02700e8df8b4c6bcc956223bf0f22a (diff)
downloadchromium_src-eeb49f7211391245d1468ca5b2ec16cb430fbd41.zip
chromium_src-eeb49f7211391245d1468ca5b2ec16cb430fbd41.tar.gz
chromium_src-eeb49f7211391245d1468ca5b2ec16cb430fbd41.tar.bz2
Move the titlebar background drawing from the titlebar to the
browser window. This fixes a visual bug where the border looked disconnected with the background. This matches what Windows does. BUG=14884 Review URL: http://codereview.chromium.org/140078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18954 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/browser_window_gtk.cc')
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc
index 4342ff6..7bf9932 100644
--- a/chrome/browser/gtk/browser_window_gtk.cc
+++ b/chrome/browser/gtk/browser_window_gtk.cc
@@ -360,6 +360,8 @@ gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget,
// TODO(tc): This will have to be dynamic once themes are supported. Maybe
// detect the theme install and delete the pointer?
static NineBox* custom_frame_border = NULL;
+ static NineBox* default_background = NULL;
+ static NineBox* default_background_otr = NULL;
if (window->use_custom_frame_.GetValue()) {
ThemeProvider* theme_provider =
@@ -376,9 +378,22 @@ gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget,
IDR_WINDOW_BOTTOM_LEFT_CORNER,
IDR_WINDOW_BOTTOM_CENTER,
IDR_WINDOW_BOTTOM_RIGHT_CORNER);
+ default_background = new NineBox(theme_provider,
+ 0, IDR_THEME_FRAME, 0, 0, 0, 0, 0, 0, 0);
+ default_background_otr = new NineBox(theme_provider,
+ 0, IDR_THEME_FRAME_INCOGNITO, 0, 0, 0, 0, 0, 0, 0);
}
+ // Draw the default background.
// TODO(tc): Handle maximized windows.
+ cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(widget->window));
+ cairo_rectangle(cr, event->area.x, event->area.y, event->area.width,
+ event->area.height);
+ cairo_clip(cr);
+ NineBox* image = window->browser()->profile()->IsOffTheRecord()
+ ? default_background_otr : default_background;
+ image->RenderTopCenterStrip(cr, event->area.x, 0, event->area.width);
+ cairo_destroy(cr);
// TODO(tc): Draw the theme overlay. The windows code is below.
// if (theme_provider->HasCustomImage(IDR_THEME_FRAME_OVERLAY)) {