mirror of
https://github.com/vale981/tdesktop
synced 2025-03-05 17:51:41 -05:00
Allow markdown to intersect with previewed links.
This commit is contained in:
parent
306b87dd39
commit
dd38da7737
1 changed files with 11 additions and 3 deletions
|
@ -605,6 +605,12 @@ void MessageLinksParser::parse() {
|
||||||
_list = QStringList();
|
_list = QStringList();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
const auto tagCanIntersectWithLink = [](const QString &tag) {
|
||||||
|
return (tag == Ui::InputField::kTagBold)
|
||||||
|
|| (tag == Ui::InputField::kTagItalic)
|
||||||
|
|| (tag == Ui::InputField::kTagUnderline)
|
||||||
|
|| (tag == Ui::InputField::kTagStrikeOut);
|
||||||
|
};
|
||||||
|
|
||||||
auto ranges = QVector<LinkRange>();
|
auto ranges = QVector<LinkRange>();
|
||||||
|
|
||||||
|
@ -620,7 +626,9 @@ void MessageLinksParser::parse() {
|
||||||
++tag;
|
++tag;
|
||||||
};
|
};
|
||||||
const auto processTagsBefore = [&](int offset) {
|
const auto processTagsBefore = [&](int offset) {
|
||||||
while (tag != tagsEnd && tag->offset + tag->length <= offset) {
|
while (tag != tagsEnd
|
||||||
|
&& (tag->offset + tag->length <= offset
|
||||||
|
|| tagCanIntersectWithLink(tag->id))) {
|
||||||
processTag();
|
processTag();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -640,9 +648,9 @@ void MessageLinksParser::parse() {
|
||||||
while (markdownTag != markdownTagsEnd
|
while (markdownTag != markdownTagsEnd
|
||||||
&& (markdownTag->adjustedStart
|
&& (markdownTag->adjustedStart
|
||||||
+ markdownTag->adjustedLength <= from
|
+ markdownTag->adjustedLength <= from
|
||||||
|| !markdownTag->closed)) {
|
|| !markdownTag->closed
|
||||||
|
|| tagCanIntersectWithLink(markdownTag->tag))) {
|
||||||
++markdownTag;
|
++markdownTag;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
if (markdownTag == markdownTagsEnd
|
if (markdownTag == markdownTagsEnd
|
||||||
|| markdownTag->adjustedStart >= from + length) {
|
|| markdownTag->adjustedStart >= from + length) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue