summaryrefslogtreecommitdiff
path: root/unity-shared
diff options
authorAndrea Azzarone <azzaronea@gmail.com>2012-10-09 08:18:19 -0400
committerTarmac <>2012-10-09 08:18:19 -0400
commit4848643e33e47d9e2d0d3bf8b973d09a3a7faf17 (patch)
treeab1a9b6a99c4d0c931dec4f87374981ebc9fa7ee /unity-shared
parent26aef95d482a52b6a635445f47bf19488f489b23 (diff)
parent688b7dfbc585b148b8883cda9bcc001e9383e6eb (diff)
Fix rendering flaw in search entry. (LP: #1059562). Fixes: https://bugs.launchpad.net/bugs/1059562. Approved by Nick Dedekind.
(bzr r2816)
Diffstat (limited to 'unity-shared')
-rw-r--r--unity-shared/SearchBar.cpp39
1 files changed, 11 insertions, 28 deletions
diff --git a/unity-shared/SearchBar.cpp b/unity-shared/SearchBar.cpp
index 8d63f20da..3e61f074d 100644
--- a/unity-shared/SearchBar.cpp
+++ b/unity-shared/SearchBar.cpp
@@ -363,6 +363,17 @@ void SearchBar::Draw(nux::GraphicsEngine& graphics_engine, bool force_draw)
graphics_engine.PushClippingRectangle(base);
+ if (RedirectedAncestor())
+ {
+ unsigned int alpha = 0, src = 0, dest = 0;
+ graphics_engine.GetRenderStates().GetBlend(alpha, src, dest);
+ // This is necessary when doing redirected rendering.
+ // Clean the area below this view before drawing anything.
+ graphics_engine.GetRenderStates().SetBlend(false);
+ graphics_engine.QRP_Color(base.x, base.y, base.width, base.height, nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
+ graphics_engine.GetRenderStates().SetBlend(alpha, src, dest);
+ }
+
bg_layer_->SetGeometry(nux::Geometry(base.x, base.y, last_width_, last_height_));
nux::GetPainter().RenderSinglePaintLayer(graphics_engine,
bg_layer_->GetGeometry(),
@@ -380,38 +391,10 @@ void SearchBar::Draw(nux::GraphicsEngine& graphics_engine, bool force_draw)
if (!highlight_layer_)
highlight_layer_.reset(style.FocusOverlay(geo.width, geo.height));
- if (RedirectedAncestor())
- {
- unsigned int alpha = 0, src = 0, dest = 0;
- graphics_engine.GetRenderStates().GetBlend(alpha, src, dest);
- // This is necessary when doing redirected rendering.
- // Clean the area below this view before drawing anything.
- graphics_engine.GetRenderStates().SetBlend(false);
- graphics_engine.QRP_Color(geo.x, geo.y, geo.width, geo.height, nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
- graphics_engine.GetRenderStates().SetBlend(alpha, src, dest);
- }
-
highlight_layer_->SetGeometry(geo);
highlight_layer_->Renderlayer(graphics_engine);
}
- else if (expander_view_ && expander_view_->IsVisible())
- {
- nux::Geometry geo(expander_view_->GetGeometry());
-
- geo.y -= (HIGHLIGHT_HEIGHT- geo.height) / 2;
- geo.height = HIGHLIGHT_HEIGHT;
- if (RedirectedAncestor())
- {
- unsigned int alpha = 0, src = 0, dest = 0;
- graphics_engine.GetRenderStates().GetBlend(alpha, src, dest);
- // This is necessary when doing redirected rendering.
- // Clean the area below this view before drawing anything.
- graphics_engine.GetRenderStates().SetBlend(false);
- graphics_engine.QRP_Color(geo.x, geo.y, geo.width, geo.height, nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
- graphics_engine.GetRenderStates().SetBlend(alpha, src, dest);
- }
- }
graphics_engine.PopClippingRectangle();
}