From 4a9e5f0a8dd8d47b25ef078f789f218b6fb50c73 Mon Sep 17 00:00:00 2001 From: CodingJellyfish Date: Mon, 29 Jul 2024 21:52:12 +0800 Subject: [PATCH] Fix remaining #5127 --- src/guiengine/skin.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/guiengine/skin.cpp b/src/guiengine/skin.cpp index 615a2e655cd..bd58de8a36d 100644 --- a/src/guiengine/skin.cpp +++ b/src/guiengine/skin.cpp @@ -1490,9 +1490,8 @@ void Skin::drawRibbonChild(const core::recti &rect, Widget* widget, return; nPlayersOnThisItem = 1; - } + } - // Handle drawing for everyone else for (unsigned i = 1; i < MAX_PLAYER_COUNT; i++) { // ---- Draw selection for other players than player 1 @@ -1500,6 +1499,20 @@ void Skin::drawRibbonChild(const core::recti &rect, Widget* widget, parentRibbon->getSelectionIDString(i) == widget->m_properties[PROP_ID]) { + nPlayersOnThisItem++; + } + } + + // Handle drawing for everyone else + for (unsigned i = MAX_PLAYER_COUNT - 1; i >= 1; i--) + { + // ---- Draw selection for other players than player 1 + if (parentRibbon->isFocusedForPlayer(i) && + parentRibbon->getSelectionIDString(i) == + widget->m_properties[PROP_ID]) + { + nPlayersOnThisItem--; + short red_previous = parentRibbonWidget->m_skin_r; short green_previous = parentRibbonWidget->m_skin_g; short blue_previous = parentRibbonWidget->m_skin_b; @@ -1546,7 +1559,6 @@ void Skin::drawRibbonChild(const core::recti &rect, Widget* widget, parentRibbonWidget->m_skin_g = green_previous; parentRibbonWidget->m_skin_b = blue_previous; } - nPlayersOnThisItem++; } }