From 19350e3846bd54065cdaadd70265994fda82ce6b Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 2 Jan 2023 15:08:36 +0400 Subject: [PATCH] Open type="document" with photo as a photo. Fixes #25600. --- Telegram/SourceFiles/data/data_web_page.cpp | 2 ++ Telegram/SourceFiles/data/data_web_page.h | 1 + .../SourceFiles/history/view/media/history_view_web_page.cpp | 2 ++ Telegram/SourceFiles/overview/overview_layout.cpp | 4 +++- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/data/data_web_page.cpp b/Telegram/SourceFiles/data/data_web_page.cpp index db3a51d9b..aac8e8ae6 100644 --- a/Telegram/SourceFiles/data/data_web_page.cpp +++ b/Telegram/SourceFiles/data/data_web_page.cpp @@ -144,6 +144,8 @@ WebPageType ParseWebPageType( return WebPageType::Video; } else if (type == u"photo"_q) { return WebPageType::Photo; + } else if (type == u"document"_q) { + return WebPageType::Document; } else if (type == u"profile"_q) { return WebPageType::Profile; } else if (type == u"telegram_background"_q) { diff --git a/Telegram/SourceFiles/data/data_web_page.h b/Telegram/SourceFiles/data/data_web_page.h index 4ed47e513..2655fd7c4 100644 --- a/Telegram/SourceFiles/data/data_web_page.h +++ b/Telegram/SourceFiles/data/data_web_page.h @@ -26,6 +26,7 @@ enum class WebPageType { Photo, Video, + Document, User, Bot, diff --git a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp index b75cdd096..cab4fd7b4 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp @@ -166,6 +166,7 @@ QSize WebPage::countOptimalSize() { } else if (!_data->document && _data->photo && _data->type != WebPageType::Photo + && _data->type != WebPageType::Document && _data->type != WebPageType::Video) { if (_data->type == WebPageType::Profile) { _asArticle = true; @@ -755,6 +756,7 @@ ClickHandlerPtr WebPage::replaceAttachLink( || _data->type == WebPageType::Video) { return _openl; } else if (_data->type == WebPageType::Photo + || _data->type == WebPageType::Document || _data->siteName == u"Twitter"_q || _data->siteName == u"Facebook"_q) { // leave photo link diff --git a/Telegram/SourceFiles/overview/overview_layout.cpp b/Telegram/SourceFiles/overview/overview_layout.cpp index 57dff2ef2..9a2c875fc 100644 --- a/Telegram/SourceFiles/overview/overview_layout.cpp +++ b/Telegram/SourceFiles/overview/overview_layout.cpp @@ -1610,9 +1610,11 @@ Link::Link( }), parent->fullId()); } else if (_page->photo) { - if (_page->type == WebPageType::Profile || _page->type == WebPageType::Video) { + if (_page->type == WebPageType::Profile + || _page->type == WebPageType::Video) { _photol = createHandler(_page->url); } else if (_page->type == WebPageType::Photo + || _page->type == WebPageType::Document || _page->siteName == u"Twitter"_q || _page->siteName == u"Facebook"_q) { _photol = std::make_shared(