Index: chromeos/accelerometer/accelerometer_reader.cc |
diff --git a/chromeos/accelerometer/accelerometer_reader.cc b/chromeos/accelerometer/accelerometer_reader.cc |
index 19d78c89771cdf795a197579461b1ce9f2246ae3..6e78218b71a7611d78d12514b890996cff70895b 100644 |
--- a/chromeos/accelerometer/accelerometer_reader.cc |
+++ b/chromeos/accelerometer/accelerometer_reader.cc |
@@ -203,7 +203,8 @@ void AccelerometerReader::Initialize( |
void AccelerometerReader::AddObserver(Observer* observer) { |
observers_.AddObserver(observer); |
- observer->OnAccelerometerUpdated(update_); |
+ if (has_update_) |
+ observer->OnAccelerometerUpdated(update_); |
} |
void AccelerometerReader::RemoveObserver(Observer* observer) { |
@@ -211,7 +212,8 @@ void AccelerometerReader::RemoveObserver(Observer* observer) { |
} |
AccelerometerReader::AccelerometerReader() |
- : configuration_(new AccelerometerReader::Configuration()), |
+ : has_update_(false), |
+ configuration_(new AccelerometerReader::Configuration()), |
weak_factory_(this) { |
} |
@@ -245,6 +247,7 @@ void AccelerometerReader::OnDataRead( |
DCHECK(!task_runner_->RunsTasksOnCurrentThread()); |
if (success) { |
+ has_update_ = true; |
for (int i = 0; i < ACCELEROMETER_SOURCE_COUNT; ++i) { |
if (!configuration_->data.has[i]) |
continue; |