Added minimal threshold to emoji preview for reaction selector.

This commit is contained in:
23rd
2025-11-20 21:10:19 +03:00
committed by John Preston
parent f9883afd61
commit b412241d25
5 changed files with 29 additions and 22 deletions

View File

@@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_session.h"
#include "ui/emoji_config.h"
#include "ui/image/image.h"
#include "ui/painter.h"
#include "ui/rect.h"
#include "ui/ui_utility.h"
#include "window/window_session_controller.h"
@@ -78,19 +79,12 @@ QRect MediaPreviewWidget::updateArea() const {
void MediaPreviewWidget::paintEvent(QPaintEvent *e) {
auto p = QPainter(this);
if (_cornersSkip > 0) {
if (_customRadius > 0) {
auto hq = PainterHighQualityEnabler(p);
const auto r = rect() - _backgroundMargins;
auto clipRegion = QRegion(r);
const auto skip = _cornersSkip;
clipRegion -= QRect(r.x(), r.y(), skip, skip);
clipRegion -= QRect(r.x() + r.width() - skip, r.y(), skip, skip);
clipRegion -= QRect(r.x(), r.y() + r.height() - skip, skip, skip);
clipRegion -= QRect(
r.x() + r.width() - skip,
r.y() + r.height() - skip,
skip,
skip);
p.setClipRegion(clipRegion);
auto path = QPainterPath();
path.addRoundedRect(r, _customRadius, _customRadius);
p.setClipPath(path);
}
const auto r = e->rect();
@@ -310,8 +304,8 @@ void MediaPreviewWidget::setBackgroundMargins(const QMargins &margins) {
update();
}
void MediaPreviewWidget::setCornersSkip(int pixels) {
_cornersSkip = pixels;
void MediaPreviewWidget::setCustomRadius(int radius) {
_customRadius = radius;
update();
}

View File

@@ -40,7 +40,7 @@ public:
void hidePreview();
void setCustomPadding(const QMargins &padding = QMargins());
void setBackgroundMargins(const QMargins &margins = QMargins());
void setCornersSkip(int pixels);
void setCustomRadius(int radius);
~MediaPreviewWidget();
@@ -92,7 +92,7 @@ private:
mutable QSize _cachedSize;
QMargins _customPadding;
QMargins _backgroundMargins;
int _cornersSkip = 0;
int _customRadius = 0;
};