diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-27 21:27:50 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-27 21:27:50 +0000 |
commit | 5e4ee8636457de2a384cdfb27f40185949389273 (patch) | |
tree | 10a787329416c10bb6d7d62ce33c5c9620718a82 | |
parent | 13aec6c49895d337eff5119622bdff814b0b4200 (diff) | |
download | chromium_src-5e4ee8636457de2a384cdfb27f40185949389273.zip chromium_src-5e4ee8636457de2a384cdfb27f40185949389273.tar.gz chromium_src-5e4ee8636457de2a384cdfb27f40185949389273.tar.bz2 |
Fix visibility on WebLayer
A change in the UI code exposed this bug where we were not setting the opacity
properly on the web layer in certain cases.
BUG=None
TEST=chrome/aura
Review URL: http://codereview.chromium.org/8400014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107627 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/gfx/compositor/layer.cc | 8 | ||||
-rw-r--r-- | ui/gfx/compositor/layer_unittest.cc | 14 |
2 files changed, 18 insertions, 4 deletions
diff --git a/ui/gfx/compositor/layer.cc b/ui/gfx/compositor/layer.cc index 2868f4d..a075137 100644 --- a/ui/gfx/compositor/layer.cc +++ b/ui/gfx/compositor/layer.cc @@ -186,6 +186,10 @@ void Layer::SetVisible(bool visible) { bool was_drawn = IsDrawn(); visible_ = visible; +#if defined(USE_WEBKIT_COMPOSITOR) + // TODO(piman): Expose a visibility flag on WebLayer. + web_layer_.setOpacity(visible_ ? opacity_ : 0.f); +#endif bool is_drawn = IsDrawn(); if (was_drawn == is_drawn) return; @@ -193,10 +197,6 @@ void Layer::SetVisible(bool visible) { if (!is_drawn) DropTextures(); SetNeedsToRecomputeHole(); -#if defined(USE_WEBKIT_COMPOSITOR) - // TODO(piman): Expose a visibility flag on WebLayer. - web_layer_.setOpacity(visible_ ? opacity_ : 0.f); -#endif } bool Layer::IsDrawn() const { diff --git a/ui/gfx/compositor/layer_unittest.cc b/ui/gfx/compositor/layer_unittest.cc index ae63345..a5e64feb 100644 --- a/ui/gfx/compositor/layer_unittest.cc +++ b/ui/gfx/compositor/layer_unittest.cc @@ -867,6 +867,11 @@ TEST_F(LayerWithNullDelegateTest, Visibility) { EXPECT_TRUE(l1->IsDrawn()); EXPECT_TRUE(l2->IsDrawn()); EXPECT_TRUE(l3->IsDrawn()); +#if defined(USE_WEBKIT_COMPOSITOR) + EXPECT_EQ(1.f, l1->web_layer().opacity()); + EXPECT_EQ(1.f, l2->web_layer().opacity()); + EXPECT_EQ(1.f, l3->web_layer().opacity()); +#endif compositor()->SetRootLayer(l1.get()); @@ -876,16 +881,25 @@ TEST_F(LayerWithNullDelegateTest, Visibility) { EXPECT_FALSE(l1->IsDrawn()); EXPECT_FALSE(l2->IsDrawn()); EXPECT_FALSE(l3->IsDrawn()); +#if defined(USE_WEBKIT_COMPOSITOR) + EXPECT_EQ(0.f, l1->web_layer().opacity()); +#endif l3->SetVisible(false); EXPECT_FALSE(l1->IsDrawn()); EXPECT_FALSE(l2->IsDrawn()); EXPECT_FALSE(l3->IsDrawn()); +#if defined(USE_WEBKIT_COMPOSITOR) + EXPECT_EQ(0.f, l3->web_layer().opacity()); +#endif l1->SetVisible(true); EXPECT_TRUE(l1->IsDrawn()); EXPECT_TRUE(l2->IsDrawn()); EXPECT_FALSE(l3->IsDrawn()); +#if defined(USE_WEBKIT_COMPOSITOR) + EXPECT_EQ(1.f, l1->web_layer().opacity()); +#endif } } // namespace ui |