| Index: chrome/browser/ui/views/wrench_menu.cc
|
| diff --git a/chrome/browser/ui/views/wrench_menu.cc b/chrome/browser/ui/views/wrench_menu.cc
|
| index c7b65dfcdcdc1eacbb9143c2bea04dd72f52bfed..2b2ad2a61f5f39e45f9fadd0e390f682c0320066 100644
|
| --- a/chrome/browser/ui/views/wrench_menu.cc
|
| +++ b/chrome/browser/ui/views/wrench_menu.cc
|
| @@ -480,8 +480,7 @@ static const int kTouchZoomPadding = 14;
|
| // ZoomView contains the various zoom controls: two buttons to increase/decrease
|
| // the zoom, a label showing the current zoom percent, and a button to go
|
| // full-screen.
|
| -class WrenchMenu::ZoomView : public WrenchMenuView,
|
| - public content::NotificationObserver {
|
| +class WrenchMenu::ZoomView : public WrenchMenuView {
|
| public:
|
| ZoomView(WrenchMenu* menu,
|
| MenuModel* menu_model,
|
| @@ -490,11 +489,17 @@ class WrenchMenu::ZoomView : public WrenchMenuView,
|
| int fullscreen_index)
|
| : WrenchMenuView(menu, menu_model),
|
| fullscreen_index_(fullscreen_index),
|
| + zoom_callback_(base::Bind(&WrenchMenu::ZoomView::OnZoomLevelChanged,
|
| + base::Unretained(this))),
|
| increment_button_(NULL),
|
| zoom_label_(NULL),
|
| decrement_button_(NULL),
|
| fullscreen_button_(NULL),
|
| zoom_label_width_(0) {
|
| + HostZoomMap::GetForBrowserContext(
|
| + menu_->browser_->profile())->AddZoomLevelChangedCallback(
|
| + zoom_callback_);
|
| +
|
| decrement_button_ = CreateButtonWithAccName(
|
| IDS_ZOOM_MINUS2, MenuButtonBackground::LEFT_BUTTON, decrement_index,
|
| NULL, IDS_ACCNAME_ZOOM_MINUS2);
|
| @@ -555,11 +560,12 @@ class WrenchMenu::ZoomView : public WrenchMenuView,
|
| AddChildView(fullscreen_button_);
|
|
|
| UpdateZoomControls();
|
| + }
|
|
|
| - registrar_.Add(
|
| - this, content::NOTIFICATION_ZOOM_LEVEL_CHANGED,
|
| - content::Source<HostZoomMap>(
|
| - HostZoomMap::GetForBrowserContext(menu->browser_->profile())));
|
| + ~ZoomView() {
|
| + HostZoomMap::GetForBrowserContext(
|
| + menu_->browser_->profile())->RemoveZoomLevelChangedCallback(
|
| + zoom_callback_);
|
| }
|
|
|
| // Overridden from View.
|
| @@ -613,15 +619,11 @@ class WrenchMenu::ZoomView : public WrenchMenuView,
|
| }
|
| }
|
|
|
| - // Overridden from content::NotificationObserver.
|
| - virtual void Observe(int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) OVERRIDE {
|
| - DCHECK_EQ(content::NOTIFICATION_ZOOM_LEVEL_CHANGED, type);
|
| + private:
|
| + void OnZoomLevelChanged(const std::string& host) {
|
| UpdateZoomControls();
|
| }
|
|
|
| - private:
|
| void UpdateZoomControls() {
|
| bool enable_increment = false;
|
| bool enable_decrement = false;
|
| @@ -669,6 +671,7 @@ class WrenchMenu::ZoomView : public WrenchMenuView,
|
| // Index of the fullscreen menu item in the model.
|
| const int fullscreen_index_;
|
|
|
| + content::HostZoomMap::ZoomLevelChangedCallback zoom_callback_;
|
| content::NotificationRegistrar registrar_;
|
|
|
| // Button for incrementing the zoom.
|
|
|