From 3d3189d0ddb81ae5f9e23d3d192d28bdddd4bb53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 16 Jan 2020 15:12:50 +0100 Subject: [PATCH] [escher] BurgerMenuView: when drawRect, reinitialize the rectangle to avoid corruption when re-drawing above a burger. Indeed, blendRectWithMask pulls the current color to blend it. --- escher/src/burger_menu_view.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/escher/src/burger_menu_view.cpp b/escher/src/burger_menu_view.cpp index 44fadba00..6e2754332 100644 --- a/escher/src/burger_menu_view.cpp +++ b/escher/src/burger_menu_view.cpp @@ -41,7 +41,12 @@ void BurgerMenuView::drawRect(KDContext * ctx, KDRect rect) const { KDCoordinate heightCenter = bounds().height()/2; KDCoordinate burgerHalfSize = k_burgerSize/2; KDRect frame(widthCenter - burgerHalfSize, heightCenter - burgerHalfSize, k_burgerSize, k_burgerSize); + // Reinitialize the color of the rectangle to avoid corruptions after successive drawings of burger view + KDColor sample = ctx->getPixel(KDPointZero); + ctx->fillRect(bounds(), sample); + // Draw the circle ctx->blendRectWithMask(frame, m_backgroundColor, (const uint8_t *)sCircleMask, sBurgerWorkingBuffer); + // Draw the burger ctx->blendRectWithMask(frame, KDColorBlack, (const uint8_t *)sBurgerMask, sBurgerWorkingBuffer); }