diff options
-rw-r--r-- | ash/accelerators/accelerator_controller_unittest.cc | 5 | ||||
-rw-r--r-- | ash/accelerators/accelerator_filter_unittest.cc | 5 | ||||
-rw-r--r-- | ash/screenshot_delegate.h | 9 | ||||
-rw-r--r-- | chrome/browser/ui/views/aura/screenshot_taker.cc | 10 | ||||
-rw-r--r-- | chrome/browser/ui/views/aura/screenshot_taker.h | 3 |
5 files changed, 29 insertions, 3 deletions
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index 1cba03a..964c402 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc @@ -63,6 +63,11 @@ class DummyScreenshotDelegate : public ScreenshotDelegate { ++handle_take_screenshot_count_; } + virtual void HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) OVERRIDE { + // Do nothing because it's not tested yet. + } + int handle_take_screenshot_count() const { return handle_take_screenshot_count_; } diff --git a/ash/accelerators/accelerator_filter_unittest.cc b/ash/accelerators/accelerator_filter_unittest.cc index f8edc563..1476c9f 100644 --- a/ash/accelerators/accelerator_filter_unittest.cc +++ b/ash/accelerators/accelerator_filter_unittest.cc @@ -36,6 +36,11 @@ class DummyScreenshotDelegate : public ScreenshotDelegate { ++handle_take_screenshot_count_; } + virtual void HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) OVERRIDE { + // Do nothing because it's not tested yet. + } + int handle_take_screenshot_count() const { return handle_take_screenshot_count_; } diff --git a/ash/screenshot_delegate.h b/ash/screenshot_delegate.h index 62ead29..96e67bb 100644 --- a/ash/screenshot_delegate.h +++ b/ash/screenshot_delegate.h @@ -10,6 +10,10 @@ namespace aura { class Window; } // namespace aura +namespace gfx { +class Rect; +} // namespace gfx + namespace ash { // Delegate for taking screenshots. @@ -21,6 +25,11 @@ class ScreenshotDelegate { // This method is called when the user wants to take a screenshot // manually. virtual void HandleTakeScreenshot(aura::Window* window) = 0; + + // The actual task of taking a partial screenshot for the given + // window. + virtual void HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) = 0; }; } // namespace ash diff --git a/chrome/browser/ui/views/aura/screenshot_taker.cc b/chrome/browser/ui/views/aura/screenshot_taker.cc index 9985d35..c004e9c 100644 --- a/chrome/browser/ui/views/aura/screenshot_taker.cc +++ b/chrome/browser/ui/views/aura/screenshot_taker.cc @@ -69,7 +69,8 @@ void SaveScreenshot(bool is_logged_in, ScreenshotTaker::ScreenshotTaker() { } -void ScreenshotTaker::HandleTakeScreenshot(aura::Window* window) { +void ScreenshotTaker::HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) { DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); scoped_refptr<RefCountedBytes> png_data(new RefCountedBytes); @@ -79,8 +80,7 @@ void ScreenshotTaker::HandleTakeScreenshot(aura::Window* window) { is_logged_in = chromeos::UserManager::Get()->user_is_logged_in(); #endif - if (browser::GrabWindowSnapshot( - window, &png_data->data(), window->bounds())) { + if (browser::GrabWindowSnapshot(window, &png_data->data(), rect)) { content::BrowserThread::PostTask( content::BrowserThread::FILE, FROM_HERE, base::Bind(&SaveScreenshot, is_logged_in, png_data)); @@ -88,3 +88,7 @@ void ScreenshotTaker::HandleTakeScreenshot(aura::Window* window) { LOG(ERROR) << "Failed to grab the window screenshot"; } } + +void ScreenshotTaker::HandleTakeScreenshot(aura::Window* window) { + HandleTakePartialScreenshot(window, window->bounds()); +} diff --git a/chrome/browser/ui/views/aura/screenshot_taker.h b/chrome/browser/ui/views/aura/screenshot_taker.h index b782ebc..c6707e2 100644 --- a/chrome/browser/ui/views/aura/screenshot_taker.h +++ b/chrome/browser/ui/views/aura/screenshot_taker.h @@ -18,7 +18,10 @@ class ScreenshotTaker : public ash::ScreenshotDelegate { public: ScreenshotTaker(); + // Overridden from ash::ScreenshotDelegate: virtual void HandleTakeScreenshot(aura::Window* window) OVERRIDE; + virtual void HandleTakePartialScreenshot( + aura::Window* window, const gfx::Rect& rect) OVERRIDE; private: DISALLOW_COPY_AND_ASSIGN(ScreenshotTaker); |