Make links in multiline tooltips clickable.

This commit is contained in:
John Preston 2023-11-06 14:41:24 +04:00
parent 762a611f20
commit b8998700c4

View file

@ -44,7 +44,7 @@ Widget::Widget(QWidget *parent, const Config &config)
, _adaptive(config.adaptive) , _adaptive(config.adaptive)
, _maxTextWidth(widthWithoutPadding(_st->maxWidth)) , _maxTextWidth(widthWithoutPadding(_st->maxWidth))
, _maxTextHeight( , _maxTextHeight(
config.st->style.font->height * (_multiline ? config.maxLines : 1)) _st->style.font->height * (_multiline ? config.maxLines : 1))
, _text(_multiline ? widthWithoutPadding(config.st->minWidth) : kQFixedMax) , _text(_multiline ? widthWithoutPadding(config.st->minWidth) : kQFixedMax)
, _clickHandlerFilter(config.filter) { , _clickHandlerFilter(config.filter) {
const auto toastOptions = TextParseOptions{ const auto toastOptions = TextParseOptions{
@ -200,7 +200,9 @@ void Widget::mouseMoveEvent(QMouseEvent *e) {
} }
const auto point = e->pos() const auto point = e->pos()
- QPoint(_st->padding.left(), _textTop); - QPoint(_st->padding.left(), _textTop);
const auto state = _text.getStateElided(point, _textWidth + 1); auto request = Ui::Text::StateRequestElided();
request.lines = (_maxTextHeight / _st->style.font->height);
const auto state = _text.getStateElided(point, _textWidth + 1, request);
const auto was = ClickHandler::getActive(); const auto was = ClickHandler::getActive();
if (was != state.link) { if (was != state.link) {
ClickHandler::setActive(state.link); ClickHandler::setActive(state.link);