diff --git a/Telegram/SourceFiles/chat_helpers/chat_helpers.style b/Telegram/SourceFiles/chat_helpers/chat_helpers.style index ef96e4366..6b69aa136 100644 --- a/Telegram/SourceFiles/chat_helpers/chat_helpers.style +++ b/Telegram/SourceFiles/chat_helpers/chat_helpers.style @@ -989,8 +989,33 @@ historyUnreadReactions: TwoIconButton(historyToDown) { } historyUnreadThingsSkip: 4px; +historyQuoteStyle: QuoteStyle(defaultQuoteStyle) { + padding: margins(10px, 2px, 4px, 2px); + verticalSkip: 4px; + outline: 3px; + outlineShift: 2px; + radius: 5px; +} +historyTextStyle: TextStyle(defaultTextStyle) { + blockquote: QuoteStyle(historyQuoteStyle) { + padding: margins(10px, 2px, 20px, 2px); + icon: icon{{ "chat/mini_quote", windowFg }}; + iconPosition: point(4px, 4px); + expand: icon{{ "intro_country_dropdown", windowFg }}; + expandPosition: point(6px, 4px); + collapse: icon{{ "intro_country_dropdown-flip_vertical", windowFg }}; + collapsePosition: point(6px, 4px); + } + pre: QuoteStyle(historyQuoteStyle) { + header: 20px; + headerPosition: point(10px, 2px); + scrollable: true; + icon: icon{{ "chat/mini_copy", windowFg }}; + iconPosition: point(4px, 2px); + } +} historyComposeField: InputField(defaultInputField) { - style: defaultTextStyle; + style: historyTextStyle; textMargins: margins(0px, 0px, 0px, 0px); textAlign: align(left); textFg: historyComposeAreaFg; diff --git a/Telegram/SourceFiles/chat_helpers/message_field.cpp b/Telegram/SourceFiles/chat_helpers/message_field.cpp index bb328564c..d65a7acf9 100644 --- a/Telegram/SourceFiles/chat_helpers/message_field.cpp +++ b/Telegram/SourceFiles/chat_helpers/message_field.cpp @@ -14,6 +14,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/qthelp_regex.h" #include "base/qthelp_url.h" #include "base/event_filter.h" +#include "ui/chat/chat_style.h" #include "ui/layers/generic_box.h" #include "ui/rect.h" #include "core/shortcuts.h" @@ -344,6 +345,15 @@ void InitMessageFieldHandlers( DefaultEditLinkCallback(show, field, fieldStyle)); InitSpellchecker(show, field, fieldStyle != nullptr); } + const auto style = field->lifetime().make_state( + session->colorIndicesValue()); + field->setPreCache([=] { + return style->messageStyle(false, false).preCache.get(); + }); + field->setBlockquoteCache([=] { + const auto colorIndex = session->user()->colorIndex(); + return style->coloredQuoteCache(false, colorIndex).get(); + }); } [[nodiscard]] bool IsGoodFactcheckUrl(QStringView url) { diff --git a/Telegram/SourceFiles/ui/chat/chat.style b/Telegram/SourceFiles/ui/chat/chat.style index 7f8207521..e4ff33434 100644 --- a/Telegram/SourceFiles/ui/chat/chat.style +++ b/Telegram/SourceFiles/ui/chat/chat.style @@ -54,31 +54,8 @@ msgDateDelta: point(2px, 5px); msgDateImgDelta: 4px; msgDateImgPadding: point(8px, 2px); -messageQuoteStyle: QuoteStyle(defaultQuoteStyle) { - padding: margins(10px, 2px, 4px, 2px); - verticalSkip: 4px; - outline: 3px; - outlineShift: 2px; - radius: 5px; -} -messageTextStyle: TextStyle(defaultTextStyle) { - blockquote: QuoteStyle(messageQuoteStyle) { - padding: margins(10px, 2px, 20px, 2px); - icon: icon{{ "chat/mini_quote", windowFg }}; - iconPosition: point(4px, 4px); - expand: icon{{ "intro_country_dropdown", windowFg }}; - expandPosition: point(6px, 4px); - collapse: icon{{ "intro_country_dropdown-flip_vertical", windowFg }}; - collapsePosition: point(6px, 4px); - } - pre: QuoteStyle(messageQuoteStyle) { - header: 20px; - headerPosition: point(10px, 2px); - scrollable: true; - icon: icon{{ "chat/mini_copy", windowFg }}; - iconPosition: point(4px, 2px); - } -} +messageQuoteStyle: historyQuoteStyle; +messageTextStyle: historyTextStyle; historyPagePreview: QuoteStyle(messageQuoteStyle) { padding: margins(10px, 5px, 7px, 7px); } diff --git a/Telegram/lib_ui b/Telegram/lib_ui index 924301cd6..d4d51136c 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit 924301cd62d918ef25ab81d758ed4b2fff903f2e +Subproject commit d4d51136cd5ff54b84b2863a7ece39693b5ce522