Kaydet (Commit) b39c91cf authored tarafından Caolán McNamara's avatar Caolán McNamara

tdf#112696 if we select every member of a group, select the group itself

Change-Id: I1b540772ff3a04c2cb32135c972f3a745c307eb9
Reviewed-on: https://gerrit.libreoffice.org/64180
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst f761968b
...@@ -312,6 +312,33 @@ sal_Bool SwXTextView::select(const uno::Any& aInterface) ...@@ -312,6 +312,33 @@ sal_Bool SwXTextView::select(const uno::Any& aInterface)
bRet = true; bRet = true;
} }
} }
// tdf#112696 if we selected every individual element of a group, then
// select that group instead
const SdrMarkList &rMrkList = pDrawView->GetMarkedObjectList();
size_t nMarkCount = rMrkList.GetMarkCount();
if (nMarkCount > 1)
{
SdrObject* pObject = rMrkList.GetMark(0)->GetMarkedSdrObj();
SdrObject* pGroupParent = pObject->getParentSdrObjectFromSdrObject();
for (size_t i = 1; i < nMarkCount; ++i)
{
pObject = rMrkList.GetMark(i)->GetMarkedSdrObj();
SdrObject* pParent = pObject->getParentSdrObjectFromSdrObject();
if (pParent != pGroupParent)
{
pGroupParent = nullptr;
break;
}
}
if (pGroupParent && pGroupParent->IsGroupObject() &&
pGroupParent->getChildrenOfSdrObject()->GetObjCount() == nMarkCount)
{
pDrawView->UnmarkAll();
pDrawView->MarkObj(pGroupParent, pPV);
}
}
} }
return bRet; return bRet;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment