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

Unified Diff: ash/system/ime/tray_ime.cc

Issue 10830114: Show the IME notification if the system shelf is hidden (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reuse the same notification Created 8 years, 5 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/ime/tray_ime.cc
diff --git a/ash/system/ime/tray_ime.cc b/ash/system/ime/tray_ime.cc
index a06d018bbae978bff118db418e6a56888c0bb6c3..0251490171ed5b9c41ee5cbdf63600981f218393 100644
--- a/ash/system/ime/tray_ime.cc
+++ b/ash/system/ime/tray_ime.cc
@@ -15,6 +15,7 @@
#include "ash/system/tray/tray_item_view.h"
#include "ash/system/tray/tray_notification_view.h"
#include "ash/system/tray/tray_views.h"
+#include "ash/wm/shelf_layout_manager.h"
#include "base/logging.h"
#include "base/timer.h"
#include "base/utf_string_conversions.h"
@@ -171,16 +172,12 @@ class IMENotificationView : public TrayNotificationView {
public:
explicit IMENotificationView(TrayIME* tray)
: TrayNotificationView(tray, IDR_AURA_UBER_TRAY_IME) {
- SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
- IMEInfo current;
- delegate->GetCurrentIME(&current);
+ InitView(GetLabel());
+ }
- // TODO(zork): Use IDS_ASH_STATUS_TRAY_THIRD_PARTY_IME_TURNED_ON_BUBBLE for
- // third party IMEs
- InitView(new views::Label(
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_IME_TURNED_ON_BUBBLE,
- current.short_name)));
+ void UpdateLabel() {
+ RestartAutoCloseTimer();
+ UpdateView(GetLabel());
}
void StartAutoCloseTimer(int seconds) {
@@ -212,6 +209,20 @@ class IMENotificationView : public TrayNotificationView {
tray()->HideNotificationView();
}
+ views::Label* GetLabel() {
+ SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
+ IMEInfo current;
+ delegate->GetCurrentIME(&current);
+
+ // TODO(zork): Use IDS_ASH_STATUS_TRAY_THIRD_PARTY_IME_TURNED_ON_BUBBLE for
+ // third party IMEs
+ return new views::Label(
+ l10n_util::GetStringFUTF16(
+ IDS_ASH_STATUS_TRAY_IME_TURNED_ON_BUBBLE,
+ current.short_name));
+ }
+
+
int autoclose_delay_;
base::OneShotTimer<IMENotificationView> autoclose_;
@@ -319,8 +330,12 @@ void TrayIME::OnIMERefresh(bool show_message) {
if (detailed_)
detailed_->Update(list, property_list);
- if (list.size() > 1 && show_message && !message_shown_) {
- if (!notification_) {
+ if (list.size() > 1 && show_message) {
+ // If the notification is still visible, hide it and clear the flag so it is
+ // refreshed.
+ if (notification_) {
+ notification_->UpdateLabel();
+ } else if (!Shell::GetInstance()->shelf()->IsVisible() || !message_shown_) {
ShowNotificationView();
message_shown_ = true;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698