Kaydet (Commit) 5960cf3d authored tarafından Armin Le Grand's avatar Armin Le Grand

i123003 Corrected Handle/Overlay visualization when TextEdit is active

üst fc89249e
...@@ -718,34 +718,41 @@ void SdrMarkView::SetMarkHandles() ...@@ -718,34 +718,41 @@ void SdrMarkView::SetMarkHandles()
} }
} }
// #122142# for captions in TextEdit, force to FrameHdls to get the special text selection // check if text edit or ole is active and handles need to be suppressed. This may be the case
if(!bFrmHdl && pMarkedObj && bSingleTextObjMark && dynamic_cast< SdrCaptionObj* >(pMarkedObj)) // when a single object is selected
// Using a strict return statement is okay here; no handles means *no* handles.
if(pMarkedObj)
{ {
bFrmHdl = true; // formally #i33755#: If TextEdit is active the EditEngine will directly paint
} // to the window, so suppress Overlay and handles completely; a text frame for
// the active text edit will be painted by the repaitnt mechanism in
if (bFrmHdl) // SdrObjEditView::ImpPaintOutlinerView in this case. This needs to be reworked
{ // in the future
Rectangle aRect(GetMarkedObjRect()); // Also formally #122142#: Pretty much the same for SdrCaptionObj's in calc.
if(((SdrView*)this)->IsTextEdit())
{
const SdrTextObj* pSdrTextObj = dynamic_cast< const SdrTextObj* >(pMarkedObj);
// #i33755# if(pSdrTextObj && pSdrTextObj->IsInEditMode())
const sal_Bool bHideHandlesWhenInTextEdit( {
((SdrView*)this)->IsTextEdit() return;
&& pMarkedObj }
&& pMarkedObj->ISA(SdrTextObj) }
&& ((SdrTextObj*)pMarkedObj)->IsInEditMode());
// #i118524# if inplace activated OLE is selected, // formally #i118524#: if inplace activated OLE is selected, suppress handles
// suppress handles
bool bHideHandlesWhenOleActive(false);
const SdrOle2Obj* pSdrOle2Obj = dynamic_cast< const SdrOle2Obj* >(pMarkedObj); const SdrOle2Obj* pSdrOle2Obj = dynamic_cast< const SdrOle2Obj* >(pMarkedObj);
if(pSdrOle2Obj && (pSdrOle2Obj->isInplaceActive() || pSdrOle2Obj->isUiActive())) if(pSdrOle2Obj && (pSdrOle2Obj->isInplaceActive() || pSdrOle2Obj->isUiActive()))
{ {
bHideHandlesWhenOleActive = true; return;
} }
}
if (bFrmHdl)
{
Rectangle aRect(GetMarkedObjRect());
if(!aRect.IsEmpty() && !bHideHandlesWhenInTextEdit && !bHideHandlesWhenOleActive) if(!aRect.IsEmpty())
{ // sonst nix gefunden { // sonst nix gefunden
if( bSingleTextObjMark ) if( bSingleTextObjMark )
{ {
......
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