Commit d047bf91 authored by Wez's avatar Wez Committed by Commit Bot

[Fuchsia] Fix bounding-box of GPU surface ViewHolder.

https://chromium-review.googlesource.com/c/chromium/src/+/1895745
migrated the GPU process' surface to be embedded as a child View,
setting ViewProperties on it to prevent it receiving focus.

Because the ViewProperties had no bounding_box set this prevented the
GPU surface View from actually being displayed.

Bug: fuchsia:29945, 974826, 1022586
Change-Id: Iba93746719751911d645f067ad52e7b9bb8b661d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1904557
Commit-Queue: Wez <wez@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: default avatarSergey Ulanov <sergeyu@chromium.org>
Auto-Submit: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713688}
parent 35d7e73f
...@@ -63,19 +63,20 @@ ScenicWindow::~ScenicWindow() { ...@@ -63,19 +63,20 @@ ScenicWindow::~ScenicWindow() {
void ScenicWindow::AttachSurfaceView( void ScenicWindow::AttachSurfaceView(
fuchsia::ui::views::ViewHolderToken token) { fuchsia::ui::views::ViewHolderToken token) {
scenic::ViewHolder surface_view_holder(&scenic_session_, std::move(token), surface_view_holder_ = std::make_unique<scenic::ViewHolder>(
"chromium window surface"); &scenic_session_, std::move(token), "chromium window surface");
// Configure the ViewHolder not to be focusable, or hit-testable, to ensure // Configure the ViewHolder not to be focusable, or hit-testable, to ensure
// that it cannot receive input. // that it cannot receive input.
fuchsia::ui::gfx::ViewProperties view_properties; fuchsia::ui::gfx::ViewProperties view_properties;
view_properties.bounding_box = {{-0.5f, -0.5f, -0.5f}, {0.5f, 0.5f, 0.5f}};
view_properties.focus_change = false; view_properties.focus_change = false;
surface_view_holder.SetViewProperties(std::move(view_properties)); surface_view_holder_->SetViewProperties(std::move(view_properties));
surface_view_holder.SetHitTestBehavior( surface_view_holder_->SetHitTestBehavior(
fuchsia::ui::gfx::HitTestBehavior::kSuppress); fuchsia::ui::gfx::HitTestBehavior::kSuppress);
render_node_.DetachChildren(); render_node_.DetachChildren();
render_node_.Attach(surface_view_holder); render_node_.AddChild(*surface_view_holder_);
scenic_session_.Present( scenic_session_.Present(
/*presentation_time=*/0, [](fuchsia::images::PresentationInfo info) {}); /*presentation_time=*/0, [](fuchsia::images::PresentationInfo info) {});
......
...@@ -116,6 +116,7 @@ class COMPONENT_EXPORT(OZONE) ScenicWindow ...@@ -116,6 +116,7 @@ class COMPONENT_EXPORT(OZONE) ScenicWindow
// Node in |scenic_session_| for rendering (hit testing disabled). // Node in |scenic_session_| for rendering (hit testing disabled).
scenic::EntityNode render_node_; scenic::EntityNode render_node_;
std::unique_ptr<scenic::ViewHolder> surface_view_holder_;
// The ratio used for translating device-independent coordinates to absolute // The ratio used for translating device-independent coordinates to absolute
// pixel coordinates. // pixel coordinates.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment