mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-18 07:45:30 +00:00
Bug 1123067 - part 1, Add the range even if it's inside a user-select:none region in case it's inside an editable node (it represents the caret). r=smaug
This commit is contained in:
parent
27f5668308
commit
ad6e4bdcbe
@ -3518,6 +3518,16 @@ Selection::AddItem(nsRange* aItem, int32_t* aOutIndex)
|
||||
if (mApplyUserSelectStyle) {
|
||||
nsAutoTArray<nsRefPtr<nsRange>, 4> rangesToAdd;
|
||||
aItem->ExcludeNonSelectableNodes(&rangesToAdd);
|
||||
if (rangesToAdd.IsEmpty()) {
|
||||
ErrorResult err;
|
||||
nsINode* node = aItem->GetStartContainer(err);
|
||||
if (node && node->IsContent() && node->AsContent()->GetEditingHost()) {
|
||||
// A contenteditable node with user-select:none, for example.
|
||||
// Allow it to have a collapsed selection (for the caret).
|
||||
aItem->Collapse(GetDirection() == eDirPrevious);
|
||||
rangesToAdd.AppendElement(aItem);
|
||||
}
|
||||
}
|
||||
for (size_t i = 0; i < rangesToAdd.Length(); ++i) {
|
||||
nsresult rv = AddItemInternal(rangesToAdd[i], aOutIndex);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
Loading…
Reference in New Issue
Block a user