From f4ae0ac6f86e419b153c01917584262563a0531c Mon Sep 17 00:00:00 2001 From: Arpit Singh Date: Tue, 26 Mar 2024 18:41:06 +0000 Subject: Add method to set SkipScreenshot flag on cursorcontroller sprites Add a methods to be able to set ISurfaceComposerClient::eSkipScreenshot flag on MouseCursorController. This will be used to hide mouse and stylus pointers on mirrored displays when a privacy sensitive window is present on source display. Test: manual test & atest PointerControllerTest Bug: 325252005 Change-Id: Ide428e8daf96a1d919adb9d6374a9ea738f87cc5 --- libs/input/PointerController.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'libs/input/PointerController.cpp') diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index cca1b07c3118..11b27a214984 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -286,13 +286,16 @@ void PointerController::setCustomPointerIcon(const SpriteIcon& icon) { mCursorController.setCustomPointerIcon(icon); } -void PointerController::setSkipScreenshot(ui::LogicalDisplayId displayId, bool skip) { +void PointerController::setSkipScreenshotFlagForDisplay(ui::LogicalDisplayId displayId) { std::scoped_lock lock(getLock()); - if (skip) { - mLocked.displaysToSkipScreenshot.insert(displayId); - } else { - mLocked.displaysToSkipScreenshot.erase(displayId); - } + mLocked.displaysToSkipScreenshot.insert(displayId); + mCursorController.setSkipScreenshot(true); +} + +void PointerController::clearSkipScreenshotFlags() { + std::scoped_lock lock(getLock()); + mLocked.displaysToSkipScreenshot.clear(); + mCursorController.setSkipScreenshot(false); } void PointerController::doInactivityTimeout() { -- cgit v1.2.3-59-g8ed1b