mirror of
https://github.com/telegramdesktop/tdesktop
synced 2024-12-27 00:53:22 +00:00
Open too large GIFs in fullscreen viewer.
This commit is contained in:
parent
f2577265ee
commit
76596f42c7
@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include "platform/platform_specific.h"
|
||||
#include "history/history.h"
|
||||
#include "history/history_item.h"
|
||||
#include "history/view/media/history_view_gif.h"
|
||||
#include "window/window_session_controller.h"
|
||||
#include "storage/cache/storage_cache_database.h"
|
||||
#include "boxes/confirm_box.h"
|
||||
@ -340,7 +341,9 @@ void DocumentOpenClickHandler::Open(
|
||||
|| data->isVideoMessage()) {
|
||||
const auto msgId = context ? context->fullId() : FullMsgId();
|
||||
Media::Player::instance()->playPause({ data, msgId });
|
||||
} else if (context && data->isAnimation()) {
|
||||
} else if (context
|
||||
&& data->isAnimation()
|
||||
&& HistoryView::Gif::CanPlayInline(data)) {
|
||||
data->owner().requestAnimationPlayInline(context);
|
||||
} else {
|
||||
Core::App().showDocument(data, context);
|
||||
|
@ -50,11 +50,6 @@ int gifMaxStatusWidth(DocumentData *document) {
|
||||
return result;
|
||||
}
|
||||
|
||||
[[nodiscard]] bool CanPlayInline(not_null<DocumentData*> document) {
|
||||
const auto dimensions = document->dimensions;
|
||||
return dimensions.width() * dimensions.height() <= kMaxInlineArea;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
struct Gif::Streamed {
|
||||
@ -109,6 +104,11 @@ Gif::~Gif() {
|
||||
}
|
||||
}
|
||||
|
||||
bool Gif::CanPlayInline(not_null<DocumentData*> document) {
|
||||
const auto dimensions = document->dimensions;
|
||||
return dimensions.width() * dimensions.height() <= kMaxInlineArea;
|
||||
}
|
||||
|
||||
QSize Gif::sizeForAspectRatio() const {
|
||||
// We use size only for aspect ratio and we want to have it
|
||||
// as close to the thumbnail as possible.
|
||||
|
@ -110,6 +110,8 @@ public:
|
||||
|
||||
void refreshParentId(not_null<HistoryItem*> realParent) override;
|
||||
|
||||
[[nodiscard]] static bool CanPlayInline(not_null<DocumentData*> document);
|
||||
|
||||
private:
|
||||
struct Streamed;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user