diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-24 08:21:56 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-24 08:21:56 +0000 |
commit | 546802004c1eabc12f13fd0713b7c4eb8e24ea22 (patch) | |
tree | e08e1eb1c39a4cff9ab7f63fd7225271d5476dff /chrome/browser/ui/ash/screenshot_taker.cc | |
parent | e03dc78d55b148fd84c7ae265748e0cc8ac7448e (diff) | |
download | chromium_src-546802004c1eabc12f13fd0713b7c4eb8e24ea22.zip chromium_src-546802004c1eabc12f13fd0713b7c4eb8e24ea22.tar.gz chromium_src-546802004c1eabc12f13fd0713b7c4eb8e24ea22.tar.bz2 |
Ignores screenshot taking invocations if it's too close to the previous one.
R=sky@chromium.org
BUG=135535
TEST=manually checked the behavior by keep pressing Ctrl-F5 on lumpy
Review URL: https://chromiumcodereview.appspot.com/10802046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148062 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/ash/screenshot_taker.cc')
-rw-r--r-- | chrome/browser/ui/ash/screenshot_taker.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/chrome/browser/ui/ash/screenshot_taker.cc b/chrome/browser/ui/ash/screenshot_taker.cc index 3e9d655..77de1e7 100644 --- a/chrome/browser/ui/ash/screenshot_taker.cc +++ b/chrome/browser/ui/ash/screenshot_taker.cc @@ -33,6 +33,8 @@ #endif namespace { +const int kScreenshotMinimumIntervalInMS = 500; + bool ShouldUse24HourClock() { #if defined(OS_CHROMEOS) Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord(); @@ -138,6 +140,10 @@ ScreenshotTaker::ScreenshotTaker() { ScreenshotTaker::~ScreenshotTaker() { } +void ScreenshotTaker::HandleTakeScreenshot(aura::Window* window) { + HandleTakePartialScreenshot(window, window->bounds()); +} + void ScreenshotTaker::HandleTakePartialScreenshot( aura::Window* window, const gfx::Rect& rect) { DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); @@ -164,6 +170,7 @@ void ScreenshotTaker::HandleTakePartialScreenshot( bool use_24hour_clock = ShouldUse24HourClock(); if (GrabWindowSnapshot(window, rect, &png_data->data())) { + last_screenshot_timestamp_ = base::Time::Now(); DisplayVisualFeedback(rect); content::BrowserThread::PostTask( content::BrowserThread::FILE, FROM_HERE, @@ -174,8 +181,11 @@ void ScreenshotTaker::HandleTakePartialScreenshot( } } -void ScreenshotTaker::HandleTakeScreenshot(aura::Window* window) { - HandleTakePartialScreenshot(window, window->bounds()); +bool ScreenshotTaker::CanTakeScreenshot() { + return last_screenshot_timestamp_.is_null() || + base::Time::Now() - last_screenshot_timestamp_ > + base::TimeDelta::FromMilliseconds( + kScreenshotMinimumIntervalInMS); } void ScreenshotTaker::CloseVisualFeedbackLayer() { |