diff --git a/lib/ui/semantics.dart b/lib/ui/semantics.dart index af5feeebacbde..ea963e64cad96 100644 --- a/lib/ui/semantics.dart +++ b/lib/ui/semantics.dart @@ -607,6 +607,14 @@ class SemanticsUpdateBuilder extends NativeFieldWrapperClass2 { /// /// The `transform` is a matrix that maps this node's coordinate system into /// its parent's coordinate system. + /// + /// The `elevation` describes the distance in z-direction between this node + /// and the `elevation` of the parent. + /// + /// The `thickness` describes how much space this node occupies in the + /// z-direction starting at `elevation`. Basically, in the z-direction the + /// node starts at `elevation` above the parent and ends at `elevation` + + /// `thickness` above the parent. void updateNode({ int id, int flags, @@ -618,6 +626,8 @@ class SemanticsUpdateBuilder extends NativeFieldWrapperClass2 { double scrollPosition, double scrollExtentMax, double scrollExtentMin, + double elevation, + double thickness, Rect rect, String label, String hint, @@ -647,6 +657,8 @@ class SemanticsUpdateBuilder extends NativeFieldWrapperClass2 { rect.top, rect.right, rect.bottom, + elevation, + thickness, label, hint, value, @@ -674,6 +686,8 @@ class SemanticsUpdateBuilder extends NativeFieldWrapperClass2 { double top, double right, double bottom, + double elevation, + double thickness, String label, String hint, String value, diff --git a/lib/ui/semantics/semantics_node.h b/lib/ui/semantics/semantics_node.h index 4275cb7d83d30..7596dc20957e8 100644 --- a/lib/ui/semantics/semantics_node.h +++ b/lib/ui/semantics/semantics_node.h @@ -87,6 +87,8 @@ struct SemanticsNode { double scrollPosition = std::nan(""); double scrollExtentMax = std::nan(""); double scrollExtentMin = std::nan(""); + double elevation = 0.0; + double thickness = 0.0; std::string label; std::string hint; std::string value; diff --git a/lib/ui/semantics/semantics_update_builder.cc b/lib/ui/semantics/semantics_update_builder.cc index aca1fa7e32a42..575ba6e3227d0 100644 --- a/lib/ui/semantics/semantics_update_builder.cc +++ b/lib/ui/semantics/semantics_update_builder.cc @@ -50,6 +50,8 @@ void SemanticsUpdateBuilder::updateNode( double top, double right, double bottom, + double elevation, + double thickness, std::string label, std::string hint, std::string value, @@ -72,6 +74,8 @@ void SemanticsUpdateBuilder::updateNode( node.scrollExtentMax = scrollExtentMax; node.scrollExtentMin = scrollExtentMin; node.rect = SkRect::MakeLTRB(left, top, right, bottom); + node.elevation = elevation; + node.thickness = thickness; node.label = label; node.hint = hint; node.value = value; diff --git a/lib/ui/semantics/semantics_update_builder.h b/lib/ui/semantics/semantics_update_builder.h index ed486e260475c..ac8424d9f0fbd 100644 --- a/lib/ui/semantics/semantics_update_builder.h +++ b/lib/ui/semantics/semantics_update_builder.h @@ -38,6 +38,8 @@ class SemanticsUpdateBuilder double top, double right, double bottom, + double elevation, + double thickness, std::string label, std::string hint, std::string value,