Index: chrome/browser/gtk/browser_toolbar_gtk.cc |
diff --git a/chrome/browser/gtk/browser_toolbar_gtk.cc b/chrome/browser/gtk/browser_toolbar_gtk.cc |
index 5ceb32d6bb70533a2ba9598bd710fcb956e008b7..a810490e0b572e74068aa17641746df3adc0d842 100644 |
--- a/chrome/browser/gtk/browser_toolbar_gtk.cc |
+++ b/chrome/browser/gtk/browser_toolbar_gtk.cc |
@@ -77,10 +77,6 @@ const int kToolbarCornerSize = 3; |
// The offset in pixels of the upgrade dot on the app menu. |
const int kUpgradeDotOffset = 6; |
-// The duration of the upgrade notification animation (actually the duration |
-// of a half-throb). |
-const int kThrobDuration = 1000; |
- |
void SetWidgetHeightRequest(GtkWidget* widget, gpointer user_data) { |
gtk_widget_set_size_request(widget, -1, GPOINTER_TO_INT(user_data)); |
} |
@@ -96,9 +92,7 @@ BrowserToolbarGtk::BrowserToolbarGtk(Browser* browser, BrowserWindowGtk* window) |
wrench_menu_model_(this, browser), |
browser_(browser), |
window_(window), |
- profile_(NULL), |
- upgrade_reminder_animation_(this), |
- upgrade_reminder_canceled_(false) { |
+ profile_(NULL) { |
browser_->command_updater()->AddCommandObserver(IDC_BACK, this); |
browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); |
browser_->command_updater()->AddCommandObserver(IDC_HOME, this); |
@@ -110,15 +104,9 @@ BrowserToolbarGtk::BrowserToolbarGtk(Browser* browser, BrowserWindowGtk* window) |
registrar_.Add(this, |
NotificationType::UPGRADE_RECOMMENDED, |
NotificationService::AllSources()); |
- |
- upgrade_reminder_animation_.SetThrobDuration(kThrobDuration); |
- |
- ActiveWindowWatcherX::AddObserver(this); |
} |
BrowserToolbarGtk::~BrowserToolbarGtk() { |
- ActiveWindowWatcherX::RemoveObserver(this); |
- |
browser_->command_updater()->RemoveCommandObserver(IDC_BACK, this); |
browser_->command_updater()->RemoveCommandObserver(IDC_FORWARD, this); |
browser_->command_updater()->RemoveCommandObserver(IDC_HOME, this); |
@@ -229,8 +217,6 @@ void BrowserToolbarGtk::Init(Profile* profile, |
gtk_box_pack_start(GTK_BOX(toolbar_), wrench_box, FALSE, FALSE, 4); |
wrench_menu_.reset(new MenuGtk(this, &wrench_menu_model_)); |
- g_signal_connect(wrench_menu_->widget(), "show", |
- G_CALLBACK(OnWrenchMenuShowThunk), this); |
registrar_.Add(this, NotificationType::ZOOM_LEVEL_CHANGED, |
Source<Profile>(browser_->profile())); |
@@ -254,8 +240,6 @@ void BrowserToolbarGtk::Init(Profile* profile, |
SetViewIDs(); |
theme_provider_->InitThemesFor(this); |
- |
- MaybeShowUpgradeReminder(); |
} |
void BrowserToolbarGtk::SetViewIDs() { |
@@ -395,7 +379,7 @@ void BrowserToolbarGtk::Observe(NotificationType type, |
UpdateRoundedness(); |
} else if (type == NotificationType::UPGRADE_RECOMMENDED) { |
- MaybeShowUpgradeReminder(); |
+ gtk_widget_queue_draw(wrench_menu_button_->widget()); |
} else if (type == NotificationType::ZOOM_LEVEL_CHANGED) { |
// If our zoom level changed, we need to tell the menu to update its state, |
// since the menu could still be open. |
@@ -638,69 +622,25 @@ void BrowserToolbarGtk::NotifyPrefChanged(const std::string* pref) { |
!home_page_is_new_tab_page_.IsManaged()); |
} |
-void BrowserToolbarGtk::MaybeShowUpgradeReminder() { |
- // Only show the upgrade reminder animation for the currently active window. |
- if (window_->IsActive() && |
- Singleton<UpgradeDetector>::get()->notify_upgrade() && |
- !upgrade_reminder_canceled_) { |
- upgrade_reminder_animation_.StartThrobbing(-1); |
- } else { |
- upgrade_reminder_animation_.Reset(); |
- } |
-} |
- |
bool BrowserToolbarGtk::ShouldOnlyShowLocation() const { |
// If we're a popup window, only show the location bar (omnibox). |
return browser_->type() != Browser::TYPE_NORMAL; |
} |
-void BrowserToolbarGtk::AnimationEnded(const Animation* animation) { |
- DCHECK_EQ(animation, &upgrade_reminder_animation_); |
- gtk_widget_queue_draw(wrench_menu_button_->widget()->parent); |
-} |
- |
-void BrowserToolbarGtk::AnimationProgressed(const Animation* animation) { |
- DCHECK_EQ(animation, &upgrade_reminder_animation_); |
- if (UpgradeAnimationIsFaded()) |
- gtk_widget_queue_draw(wrench_menu_button_->widget()->parent); |
-} |
- |
-void BrowserToolbarGtk::AnimationCanceled(const Animation* animation) { |
- AnimationEnded(animation); |
-} |
- |
-void BrowserToolbarGtk::ActiveWindowChanged(GdkWindow* active_window) { |
- MaybeShowUpgradeReminder(); |
-} |
- |
-void BrowserToolbarGtk::OnWrenchMenuShow(GtkWidget* sender) { |
- if (upgrade_reminder_animation_.is_animating()) { |
- upgrade_reminder_canceled_ = true; |
- MaybeShowUpgradeReminder(); |
- } |
-} |
- |
gboolean BrowserToolbarGtk::OnWrenchMenuButtonExpose(GtkWidget* sender, |
GdkEventExpose* expose) { |
if (!Singleton<UpgradeDetector>::get()->notify_upgrade()) |
return FALSE; |
- SkBitmap badge; |
- if (UpgradeAnimationIsFaded()) { |
- badge = SkBitmapOperations::CreateBlendedBitmap( |
- *theme_provider_->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), |
- *theme_provider_->GetBitmapNamed(IDR_UPGRADE_DOT_INACTIVE), |
- upgrade_reminder_animation_.GetCurrentValue()); |
- } else { |
- badge = *theme_provider_->GetBitmapNamed(IDR_UPGRADE_DOT_INACTIVE); |
- } |
+ const SkBitmap& badge = |
+ *theme_provider_->GetBitmapNamed(IDR_UPDATE_BADGE); |
// Draw the chrome app menu icon onto the canvas. |
gfx::CanvasSkiaPaint canvas(expose, false); |
int x_offset = base::i18n::IsRTL() ? |
sender->allocation.width - kUpgradeDotOffset - badge.width() : |
kUpgradeDotOffset; |
- int y_offset = sender->allocation.height / 2 + badge.height(); |
+ int y_offset = sender->allocation.height / 2; |
canvas.DrawBitmapInt( |
badge, |
sender->allocation.x + x_offset, |
@@ -708,10 +648,3 @@ gboolean BrowserToolbarGtk::OnWrenchMenuButtonExpose(GtkWidget* sender, |
return FALSE; |
} |
- |
-bool BrowserToolbarGtk::UpgradeAnimationIsFaded() { |
- return upgrade_reminder_animation_.cycles_remaining() > 0 && |
- // This funky looking math makes the badge throb for 2 seconds once |
- // every 8 seconds. |
- ((upgrade_reminder_animation_.cycles_remaining() - 1) / 2) % 4 == 0; |
-} |