Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7059)

Unified Diff: chrome/browser/gtk/extension_shelf_gtk.cc

Issue 173030: Port more browser focus tests to linux.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: working on windows Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/gtk/extension_shelf_gtk.cc
===================================================================
--- chrome/browser/gtk/extension_shelf_gtk.cc (revision 23643)
+++ chrome/browser/gtk/extension_shelf_gtk.cc (working copy)
@@ -8,8 +8,8 @@
#include "chrome/browser/gtk/browser_window_gtk.h"
#include "chrome/browser/gtk/gtk_theme_provider.h"
#include "chrome/browser/gtk/nine_box.h"
+#include "chrome/browser/gtk/tabs/tab_strip_gtk.h"
#include "chrome/browser/profile.h"
-#include "chrome/common/notification_service.h"
#include "grit/app_resources.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -65,9 +65,6 @@
theme_provider_(GtkThemeProvider::GetFrom(profile)),
model_(browser->extension_shelf_model()) {
Init(profile);
-
- registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED,
- NotificationService::AllSources());
}
ExtensionShelfGtk::~ExtensionShelfGtk() {
@@ -161,25 +158,6 @@
model_->AddObserver(this);
}
-void ExtensionShelfGtk::Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- if (type == NotificationType::BROWSER_THEME_CHANGED) {
- // TODO(phajdan.jr): Handle theme changes.
- } else {
- NOTREACHED() << "unexpected notification";
- }
-}
-
-void ExtensionShelfGtk::InitBackground() {
- if (background_ninebox_.get())
- return;
-
- background_ninebox_.reset(new NineBox(
- browser_->profile()->GetThemeProvider(),
- 0, IDR_THEME_TOOLBAR, 0, 0, 0, 0, 0, 0, 0));
-}
-
void ExtensionShelfGtk::AdjustHeight() {
if (model_->empty() || toolstrips_.empty()) {
// It's possible that |model_| is not empty, but |toolstrips_| are empty
@@ -213,10 +191,18 @@
cairo_rectangle(cr, event->area.x, event->area.y,
event->area.width, event->area.height);
cairo_clip(cr);
- bar->InitBackground();
- bar->background_ninebox_->RenderTopCenterStrip(
- cr, event->area.x, event->area.y,
- event->area.x + event->area.width);
+ gfx::Point tabstrip_origin =
+ static_cast<BrowserWindowGtk*>(bar->browser_->window())->
+ tabstrip()->GetTabStripOriginForWidget(widget);
+ GdkPixbuf* background = bar->browser_->profile()->GetThemeProvider()->
+ GetPixbufNamed(IDR_THEME_TOOLBAR);
+ gdk_cairo_set_source_pixbuf(cr, background,
+ tabstrip_origin.x(), tabstrip_origin.y());
+ cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
+ cairo_rectangle(cr, tabstrip_origin.x(), tabstrip_origin.y(),
+ event->area.x + event->area.width - tabstrip_origin.x(),
+ gdk_pixbuf_get_height(background));
+ cairo_fill(cr);
cairo_destroy(cr);
return FALSE; // Propagate expose to children.
Property changes on: chrome/browser/gtk/extension_shelf_gtk.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698