Fixed editing of selected caption in album to target its own media.

This commit is contained in:
23rd
2026-06-26 16:07:59 +03:00
committed by John Preston
parent df268f33b3
commit 12ce38fddf
@@ -1293,9 +1293,16 @@ void HistoryInner::setTextSelection(
TextSelection HistoryInner::getSelectedTextRange(
not_null<HistoryItem*> item) const {
return hasSelectedText() && (_selectedTextItem == item)
? _selectedTextSelection.flatRangeForEdit()
: TextSelection();
if (!hasSelectedText()) {
return TextSelection();
} else if (_selectedTextItem == item) {
return _selectedTextSelection.flatRangeForEdit();
} else if (const auto view = viewByItem(_selectedTextItem)) {
if (view->textItem() == item) {
return _selectedTextSelection.flatRangeForEdit();
}
}
return TextSelection();
}
auto HistoryInner::getSelectedTextSelection(
@@ -3414,7 +3421,21 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
hasCopyRestrictionForSelected()));
}, &st::menuIconTranslate);
}
addItemActions(item, item);
const auto editItem = [&]() -> HistoryItem* {
const auto view = item->groupId()
? viewByItem(item)
: nullptr;
if (!view) {
return item;
} else if (const auto part = view->selectedQuote(
_selectedTextSelection).item) {
return part;
} else if (const auto textItem = view->textItem()) {
return textItem;
}
return item;
}();
addItemActions(item, editItem);
} else {
addReplyAction(partItemOrLeader);
addTodoListAction(partItemOrLeader);