Loading libs/gui/LayerState.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -414,10 +414,13 @@ void InputWindowCommands::merge(const InputWindowCommands& other) { .insert(transferTouchFocusCommands.end(), std::make_move_iterator(other.transferTouchFocusCommands.begin()), std::make_move_iterator(other.transferTouchFocusCommands.end())); syncInputWindows |= other.syncInputWindows; } void InputWindowCommands::clear() { transferTouchFocusCommands.clear(); syncInputWindows = false; } void InputWindowCommands::write(Parcel& output) const { Loading @@ -426,6 +429,8 @@ void InputWindowCommands::write(Parcel& output) const { output.writeStrongBinder(transferTouchFocusCommand.fromToken); output.writeStrongBinder(transferTouchFocusCommand.toToken); } output.writeBool(syncInputWindows); } void InputWindowCommands::read(const Parcel& input) { Loading @@ -437,6 +442,8 @@ void InputWindowCommands::read(const Parcel& input) { transferTouchFocusCommand.toToken = input.readStrongBinder(); transferTouchFocusCommands.emplace_back(transferTouchFocusCommand); } syncInputWindows = input.readBool(); } }; // namespace android libs/gui/SurfaceComposerClient.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1083,6 +1083,11 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::transfer return *this; } SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::syncInputWindows() { mInputWindowCommands.syncInputWindows = true; return *this; } #endif SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setColorTransform( Loading libs/gui/include/gui/LayerState.h +1 −0 Original line number Diff line number Diff line Loading @@ -254,6 +254,7 @@ struct InputWindowCommands { }; std::vector<TransferTouchFocusCommand> transferTouchFocusCommands; bool syncInputWindows; void merge(const InputWindowCommands& other); void clear(); Loading libs/gui/include/gui/SurfaceComposerClient.h +1 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ public: #ifndef NO_INPUT Transaction& setInputWindowInfo(const sp<SurfaceControl>& sc, const InputWindowInfo& info); Transaction& transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken); Transaction& syncInputWindows(); #endif // Set a color transform matrix on the given layer on the built-in display. Loading services/surfaceflinger/SurfaceFlinger.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -3977,6 +3977,10 @@ uint32_t SurfaceFlinger::addInputWindowCommands(const InputWindowCommands& input flags |= eTraversalNeeded; } if (inputWindowCommands.syncInputWindows) { flags |= eTraversalNeeded; } mPendingInputWindowCommands.merge(inputWindowCommands); return flags; } Loading Loading
libs/gui/LayerState.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -414,10 +414,13 @@ void InputWindowCommands::merge(const InputWindowCommands& other) { .insert(transferTouchFocusCommands.end(), std::make_move_iterator(other.transferTouchFocusCommands.begin()), std::make_move_iterator(other.transferTouchFocusCommands.end())); syncInputWindows |= other.syncInputWindows; } void InputWindowCommands::clear() { transferTouchFocusCommands.clear(); syncInputWindows = false; } void InputWindowCommands::write(Parcel& output) const { Loading @@ -426,6 +429,8 @@ void InputWindowCommands::write(Parcel& output) const { output.writeStrongBinder(transferTouchFocusCommand.fromToken); output.writeStrongBinder(transferTouchFocusCommand.toToken); } output.writeBool(syncInputWindows); } void InputWindowCommands::read(const Parcel& input) { Loading @@ -437,6 +442,8 @@ void InputWindowCommands::read(const Parcel& input) { transferTouchFocusCommand.toToken = input.readStrongBinder(); transferTouchFocusCommands.emplace_back(transferTouchFocusCommand); } syncInputWindows = input.readBool(); } }; // namespace android
libs/gui/SurfaceComposerClient.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -1083,6 +1083,11 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::transfer return *this; } SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::syncInputWindows() { mInputWindowCommands.syncInputWindows = true; return *this; } #endif SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setColorTransform( Loading
libs/gui/include/gui/LayerState.h +1 −0 Original line number Diff line number Diff line Loading @@ -254,6 +254,7 @@ struct InputWindowCommands { }; std::vector<TransferTouchFocusCommand> transferTouchFocusCommands; bool syncInputWindows; void merge(const InputWindowCommands& other); void clear(); Loading
libs/gui/include/gui/SurfaceComposerClient.h +1 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ public: #ifndef NO_INPUT Transaction& setInputWindowInfo(const sp<SurfaceControl>& sc, const InputWindowInfo& info); Transaction& transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken); Transaction& syncInputWindows(); #endif // Set a color transform matrix on the given layer on the built-in display. Loading
services/surfaceflinger/SurfaceFlinger.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -3977,6 +3977,10 @@ uint32_t SurfaceFlinger::addInputWindowCommands(const InputWindowCommands& input flags |= eTraversalNeeded; } if (inputWindowCommands.syncInputWindows) { flags |= eTraversalNeeded; } mPendingInputWindowCommands.merge(inputWindowCommands); return flags; } Loading