diff options
Diffstat (limited to 'sd/source/ui')
-rw-r--r-- | sd/source/ui/func/futext.cxx | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index 4e79b59b31ac..a18bf047981f 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -2,9 +2,9 @@ * * $RCSfile: futext.cxx,v $ * - * $Revision: 1.43 $ + * $Revision: 1.44 $ * - * last change: $Author: hr $ $Date: 2004-02-03 20:17:06 $ + * last change: $Author: obo $ $Date: 2004-03-17 11:27:58 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1225,59 +1225,62 @@ void FuText::SetInEditMode(const MouseEvent& rMEvt, BOOL bQuickDrag) pView->EndTextEdit(TRUE); } - FASTBOOL bNewObj = TRUE; + if( pTextObj ) + { + FASTBOOL bNewObj = TRUE; - OutlinerParaObject* pOPO = pTextObj->GetOutlinerParaObject(); - if( ( pOPO && pOPO->IsVertical() ) || - nSlotId == SID_ATTR_CHAR_VERTICAL || - nSlotId == SID_TEXT_FITTOSIZE_VERTICAL ) - pOutl->SetVertical( TRUE ); + OutlinerParaObject* pOPO = pTextObj->GetOutlinerParaObject(); + if( ( pOPO && pOPO->IsVertical() ) || + nSlotId == SID_ATTR_CHAR_VERTICAL || + nSlotId == SID_TEXT_FITTOSIZE_VERTICAL ) + pOutl->SetVertical( TRUE ); - if (pView->BegTextEdit(pTextObj, pPV, pWindow, bNewObj, pOutl) && - pTextObj->GetObjInventor() == SdrInventor) - { - bFirstObjCreated = TRUE; - DeleteDefaultText(); + if (pView->BegTextEdit(pTextObj, pPV, pWindow, bNewObj, pOutl) && + pTextObj->GetObjInventor() == SdrInventor) + { + bFirstObjCreated = TRUE; + DeleteDefaultText(); - OutlinerView* pOLV = pView->GetTextEditOutlinerView(); + OutlinerView* pOLV = pView->GetTextEditOutlinerView(); - UINT16 nSdrObjKind = pTextObj->GetObjIdentifier(); + UINT16 nSdrObjKind = pTextObj->GetObjIdentifier(); - SdrViewEvent aVEvt; - SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt); + SdrViewEvent aVEvt; + SdrHitKind eHit = pView->PickAnything(rMEvt, SDRMOUSEBUTTONDOWN, aVEvt); - if (eHit == SDRHIT_TEXTEDIT) - { - // Text getroffen - if (nSdrObjKind == OBJ_TEXT || - nSdrObjKind == OBJ_TITLETEXT || - nSdrObjKind == OBJ_OUTLINETEXT || - nSlotId == SID_TEXTEDIT || - !bQuickDrag) + if (eHit == SDRHIT_TEXTEDIT) { - pOLV->MouseButtonDown(rMEvt); - pOLV->MouseMove(rMEvt); - pOLV->MouseButtonUp(rMEvt); - } + // Text getroffen + if (nSdrObjKind == OBJ_TEXT || + nSdrObjKind == OBJ_TITLETEXT || + nSdrObjKind == OBJ_OUTLINETEXT || + nSlotId == SID_TEXTEDIT || + !bQuickDrag) + { + pOLV->MouseButtonDown(rMEvt); + pOLV->MouseMove(rMEvt); + pOLV->MouseButtonUp(rMEvt); + } - if (pViewShell->GetFrameView()->IsQuickEdit() && - bQuickDrag && pTextObj->GetOutlinerParaObject()) + if (pViewShell->GetFrameView()->IsQuickEdit() && + bQuickDrag && pTextObj->GetOutlinerParaObject()) + { + pOLV->MouseButtonDown(rMEvt); + } + } + else { - pOLV->MouseButtonDown(rMEvt); + // #98198# Move cursor to end of text + ESelection aNewSelection(EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND, EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND); + pOLV->SetSelection(aNewSelection); } } else { - // #98198# Move cursor to end of text - ESelection aNewSelection(EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND, EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND); - pOLV->SetSelection(aNewSelection); + RestoreDefaultText(); } } - else - { - RestoreDefaultText(); - } } } } |