diff options
author | tc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-22 20:56:15 +0000 |
---|---|---|
committer | tc@google.com <tc@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-22 20:56:15 +0000 |
commit | eeb49f7211391245d1468ca5b2ec16cb430fbd41 (patch) | |
tree | 62018ba939cec89df4901bfd7e1d3d18bb433fd9 /chrome/browser/gtk/browser_window_gtk.cc | |
parent | 0ee2861b2b02700e8df8b4c6bcc956223bf0f22a (diff) | |
download | chromium_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.cc | 15 |
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)) { |