Fix select-by-words with link previews.
This commit is contained in:
parent
625ae87eea
commit
e2ea27cbef
|
@ -2802,7 +2802,11 @@ TextSelection Message::adjustSelection(
|
||||||
const auto textSelection = mediaBefore
|
const auto textSelection = mediaBefore
|
||||||
? media->skipSelection(selection)
|
? media->skipSelection(selection)
|
||||||
: selection;
|
: selection;
|
||||||
auto textAdjusted = hasVisibleText()
|
const auto useSelection = [](TextSelection selection, bool skipped) {
|
||||||
|
return !skipped || (selection != TextSelection(uint16(), uint16()));
|
||||||
|
};
|
||||||
|
auto textAdjusted = (hasVisibleText()
|
||||||
|
&& useSelection(textSelection, mediaBefore))
|
||||||
? text().adjustSelection(textSelection, type)
|
? text().adjustSelection(textSelection, type)
|
||||||
: textSelection;
|
: textSelection;
|
||||||
auto textResult = mediaBefore
|
auto textResult = mediaBefore
|
||||||
|
@ -2813,7 +2817,9 @@ TextSelection Message::adjustSelection(
|
||||||
? selection
|
? selection
|
||||||
: skipTextSelection(selection);
|
: skipTextSelection(selection);
|
||||||
if (mediaDisplayed) {
|
if (mediaDisplayed) {
|
||||||
auto mediaAdjusted = media->adjustSelection(mediaSelection, type);
|
auto mediaAdjusted = useSelection(mediaSelection, !mediaBefore)
|
||||||
|
? media->adjustSelection(mediaSelection, type)
|
||||||
|
: mediaSelection;
|
||||||
mediaResult = mediaBefore
|
mediaResult = mediaBefore
|
||||||
? mediaAdjusted
|
? mediaAdjusted
|
||||||
: unskipTextSelection(mediaAdjusted);
|
: unskipTextSelection(mediaAdjusted);
|
||||||
|
@ -2825,7 +2831,9 @@ TextSelection Message::adjustSelection(
|
||||||
: mediaBefore
|
: mediaBefore
|
||||||
? skipTextSelection(textSelection)
|
? skipTextSelection(textSelection)
|
||||||
: media->skipSelection(mediaSelection);
|
: media->skipSelection(mediaSelection);
|
||||||
auto entryAdjusted = entry->adjustSelection(entrySelection, type);
|
auto entryAdjusted = useSelection(entrySelection, true)
|
||||||
|
? entry->adjustSelection(entrySelection, type)
|
||||||
|
: entrySelection;
|
||||||
entryResult = unskipTextSelection(entryAdjusted);
|
entryResult = unskipTextSelection(entryAdjusted);
|
||||||
if (mediaDisplayed) {
|
if (mediaDisplayed) {
|
||||||
entryResult = media->unskipSelection(entryResult);
|
entryResult = media->unskipSelection(entryResult);
|
||||||
|
|
Loading…
Reference in New Issue