Commit 25a46753 authored by François Beaufort's avatar François Beaufort Committed by Commit Bot

[Picture-in-Picture] Hide controls layer when no video.

This CL makes sure we never show play/pause and scrim controls when
there is no video in Picture-in-Picture window.

Bug: 879529
Change-Id: I8d9ee5dcde24e9dc1b3e89af091c3385d338b046
Reviewed-on: https://chromium-review.googlesource.com/1235580
Commit-Queue: François Beaufort <beaufort.francois@gmail.com>
Reviewed-by: default avatarapacible <apacible@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593513}
parent ee8e323e
...@@ -320,9 +320,11 @@ void OverlayWindowViews::UpdateLayerBoundsWithLetterboxing( ...@@ -320,9 +320,11 @@ void OverlayWindowViews::UpdateLayerBoundsWithLetterboxing(
} }
void OverlayWindowViews::UpdateControlsVisibility(bool is_visible) { void OverlayWindowViews::UpdateControlsVisibility(bool is_visible) {
GetControlsScrimLayer()->SetVisible(is_visible);
GetCloseControlsLayer()->SetVisible(is_visible); GetCloseControlsLayer()->SetVisible(is_visible);
GetControlsParentLayer()->SetVisible(is_visible); GetControlsScrimLayer()->SetVisible(
(playback_state_ == kNoVideo) ? false : is_visible);
GetControlsParentLayer()->SetVisible(
(playback_state_ == kNoVideo) ? false : is_visible);
} }
void OverlayWindowViews::UpdateControlsBounds() { void OverlayWindowViews::UpdateControlsBounds() {
...@@ -509,24 +511,28 @@ void OverlayWindowViews::SetPlaybackState(PlaybackState playback_state) { ...@@ -509,24 +511,28 @@ void OverlayWindowViews::SetPlaybackState(PlaybackState playback_state) {
// TODO(apacible): have machine state for controls visibility. // TODO(apacible): have machine state for controls visibility.
bool controls_parent_layer_visible = GetControlsParentLayer()->visible(); bool controls_parent_layer_visible = GetControlsParentLayer()->visible();
switch (playback_state) { playback_state_ = playback_state;
switch (playback_state_) {
case kPlaying: case kPlaying:
play_pause_controls_view_->SetToggled(true); play_pause_controls_view_->SetToggled(true);
controls_parent_view_->SetVisible(true); controls_parent_view_->SetVisible(true);
video_view_->SetVisible(true); video_view_->SetVisible(true);
GetControlsParentLayer()->SetVisible(controls_parent_layer_visible);
break; break;
case kPaused: case kPaused:
play_pause_controls_view_->SetToggled(false); play_pause_controls_view_->SetToggled(false);
controls_parent_view_->SetVisible(true); controls_parent_view_->SetVisible(true);
video_view_->SetVisible(true); video_view_->SetVisible(true);
GetControlsParentLayer()->SetVisible(controls_parent_layer_visible);
break; break;
case kNoVideo: case kNoVideo:
controls_scrim_view_->SetVisible(false);
controls_parent_view_->SetVisible(false); controls_parent_view_->SetVisible(false);
video_view_->SetVisible(false); video_view_->SetVisible(false);
GetControlsParentLayer()->SetVisible(false);
break; break;
} }
GetControlsParentLayer()->SetVisible(controls_parent_layer_visible);
} }
void OverlayWindowViews::SetPictureInPictureCustomControls( void OverlayWindowViews::SetPictureInPictureCustomControls(
......
...@@ -138,6 +138,10 @@ class OverlayWindowViews : public content::OverlayWindow, ...@@ -138,6 +138,10 @@ class OverlayWindowViews : public content::OverlayWindow,
// components has been initialized. // components has been initialized.
bool has_been_shown_ = false; bool has_been_shown_ = false;
// Current playback state on the video in Picture-in-Picture window. It is
// used to show/hide controls.
PlaybackState playback_state_ = kNoVideo;
// The upper and lower bounds of |current_size_|. These are determined by the // The upper and lower bounds of |current_size_|. These are determined by the
// size of the primary display work area when Picture-in-Picture is initiated. // size of the primary display work area when Picture-in-Picture is initiated.
// TODO(apacible): Update these bounds when the display the window is on // TODO(apacible): Update these bounds when the display the window is on
......
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