[Libreoffice-commits] core.git: Branch 'aoo/trunk' - svx/source
Armin Le Grand
alg at apache.org
Thu Aug 29 11:12:10 PDT 2013
svx/source/svdraw/svdmrkv.cxx | 45 ++++++++++++++++++++++++------------------
1 file changed, 26 insertions(+), 19 deletions(-)
New commits:
commit 5960cf3dc57dc455bc98343dfafccafaf808ecdc
Author: Armin Le Grand <alg at apache.org>
Date: Thu Aug 29 16:32:05 2013 +0000
i123003 Corrected Handle/Overlay visualization when TextEdit is active
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index bbf283b..cf22dd4 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -718,34 +718,41 @@ void SdrMarkView::SetMarkHandles()
}
}
- // #122142# for captions in TextEdit, force to FrameHdls to get the special text selection
- if(!bFrmHdl && pMarkedObj && bSingleTextObjMark && dynamic_cast< SdrCaptionObj* >(pMarkedObj))
+ // check if text edit or ole is active and handles need to be suppressed. This may be the case
+ // when a single object is selected
+ // Using a strict return statement is okay here; no handles means *no* handles.
+ if(pMarkedObj)
{
- bFrmHdl = true;
- }
-
- if (bFrmHdl)
- {
- Rectangle aRect(GetMarkedObjRect());
+ // 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
+ // SdrObjEditView::ImpPaintOutlinerView in this case. This needs to be reworked
+ // in the future
+ // 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#
- const sal_Bool bHideHandlesWhenInTextEdit(
- ((SdrView*)this)->IsTextEdit()
- && pMarkedObj
- && pMarkedObj->ISA(SdrTextObj)
- && ((SdrTextObj*)pMarkedObj)->IsInEditMode());
+ if(pSdrTextObj && pSdrTextObj->IsInEditMode())
+ {
+ return;
+ }
+ }
- // #i118524# if inplace activated OLE is selected,
- // suppress handles
- bool bHideHandlesWhenOleActive(false);
+ // formally #i118524#: if inplace activated OLE is selected, suppress handles
const SdrOle2Obj* pSdrOle2Obj = dynamic_cast< const SdrOle2Obj* >(pMarkedObj);
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
if( bSingleTextObjMark )
{
More information about the Libreoffice-commits
mailing list