diff --git a/Telegram/SourceFiles/window/section_widget.cpp b/Telegram/SourceFiles/window/section_widget.cpp index 1da38491f..02801126d 100644 --- a/Telegram/SourceFiles/window/section_widget.cpp +++ b/Telegram/SourceFiles/window/section_widget.cpp @@ -25,6 +25,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Window { namespace { +constexpr auto kDarkValueThreshold = 0.5; + [[nodiscard]] rpl::producer PeerThemeEmojiValue( not_null peer) { return peer->session().changes().peerFlagsValue( @@ -49,9 +51,17 @@ namespace { [[nodiscard]] auto MaybeCloudThemeValueFromPeer( not_null peer) -> rpl::producer> { + auto isThemeDarkValue = rpl::single( + rpl::empty_value() + ) | rpl::then( + style::PaletteChanged() + ) | rpl::map([] { + return (st::dialogsBg->c.valueF() < kDarkValueThreshold); + }) | rpl::distinct_until_changed(); + return rpl::combine( MaybeChatThemeDataValueFromPeer(peer), - Theme::IsNightModeValue() + std::move(isThemeDarkValue) ) | rpl::map([](std::optional theme, bool night) { return !theme ? std::nullopt