diff options
author | 2024-05-07 21:15:44 +0000 | |
---|---|---|
committer | 2024-05-07 21:15:44 +0000 | |
commit | ec44865a5cb6194f4d2b5dffd0b6d3e77da69388 (patch) | |
tree | 1ab44492afdc48b4ae47a7ff15e58bf807e95eec /libs/input/PointerController.cpp | |
parent | d955927ba0f4794defab38eb179affc802f40c11 (diff) | |
parent | 80fd68a08911b984fcfee6ad1960f9ff3bb6274d (diff) |
Merge "Hide touch indicators on mirrored displays if a secure window is present" into main
Diffstat (limited to 'libs/input/PointerController.cpp')
-rw-r--r-- | libs/input/PointerController.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index f9dc5fac7e21..933a33eb8b0e 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -272,7 +272,10 @@ void PointerController::setSpots(const PointerCoords* spotCoords, const uint32_t if (it == mLocked.spotControllers.end()) { mLocked.spotControllers.try_emplace(displayId, displayId, mContext); } - mLocked.spotControllers.at(displayId).setSpots(outSpotCoords.data(), spotIdToIndex, spotIdBits); + bool skipScreenshot = mLocked.displaysToSkipScreenshot.find(displayId) != + mLocked.displaysToSkipScreenshot.end(); + mLocked.spotControllers.at(displayId).setSpots(outSpotCoords.data(), spotIdToIndex, spotIdBits, + skipScreenshot); } void PointerController::clearSpots() { @@ -352,6 +355,17 @@ void PointerController::setCustomPointerIcon(const SpriteIcon& icon) { mCursorController.setCustomPointerIcon(icon); } +void PointerController::setSkipScreenshot(int32_t displayId, bool skip) { + if (!mEnabled) return; + + std::scoped_lock lock(getLock()); + if (skip) { + mLocked.displaysToSkipScreenshot.insert(displayId); + } else { + mLocked.displaysToSkipScreenshot.erase(displayId); + } +} + void PointerController::doInactivityTimeout() { fade(Transition::GRADUAL); } |