diff options
author | Lennard Wasserthal <Wasserthal@nefkom.net> | 2013-02-09 14:31:21 +0100 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2013-02-11 10:10:29 +0000 |
commit | e80a8b6f14fac6bb6cc7ea55b118f95472d5b654 (patch) | |
tree | 7b3cf8169527aed8af7236ebd982b64673468d21 /sd | |
parent | 847749e975a7111ea306909a29fddb5df13e9a70 (diff) |
fdo#55430 switches off text mode when clicking an other object.
This patch complements 85ea03ae536831649b104694d08dced4d4c8663f (and
6fbba11da54b52554941f00b07e42cc5d7a1643c, which didn't work correctly before)
This also fixes issues when clicking on another object to stop text editing.
Switches off text mode, and instantaneously selects the other object.
(Rotation doesn't belong into the ./sd/ text routine AT ALL, which also caused bug 37482,
which is resolved differently from now on)
(Creating text fields doesn't belong into the ./sc/ shape text routine either, and if this executed, it causes funny glitches)
Known issues: text mode stays on when you use drag'n drop (the one WITH waiting, to move to other applications etc).
Change-Id: I3c8cdedbfae58165ebeda5887c1b6573832eb495
Signed-off-by: Lennard Wasserthal <Wasserthal@nefkom.net>
Reviewed-on: https://gerrit.libreoffice.org/1344
Reviewed-by: Tor Lillqvist <tml@iki.fi>
Tested-by: Tor Lillqvist <tml@iki.fi>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/ui/func/fusel.cxx | 5 | ||||
-rw-r--r-- | sd/source/ui/func/futext.cxx | 22 |
2 files changed, 15 insertions, 12 deletions
diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx index 827099e62ccd..196a3ccff05c 100644 --- a/sd/source/ui/func/fusel.cxx +++ b/sd/source/ui/func/fusel.cxx @@ -687,15 +687,14 @@ sal_Bool FuSelection::MouseButtonUp(const MouseEvent& rMEvt) Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog) { /************************************************************* - * If a user wants to click on an object in front of a masked + * If a user wants to click on an object in front of a marked * one, he releases the mouse button immediately **************************************************************/ if (mpView->PickObj(aMDPos, mpView->getHitTolLog(), pObj, pPV, SDRSEARCH_ALSOONMASTER | SDRSEARCH_BEFOREMARK)) { - //not Needed in the ordinary pick routine for some reason... mpView->UnmarkAllObj(); mpView->MarkObj(pObj,pPV,false,false); - return (bReturn); + return (sal_True); } /************************************************************** * Toggle between selection and rotation diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index 49c4b1aa46ad..2b5d3ceb4443 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -251,6 +251,7 @@ void FuText::DoExecute( SfxRequest& ) sal_Bool FuText::MouseButtonDown(const MouseEvent& rMEvt) { bMBDown = sal_True; + bJustEndedEdit = false; sal_Bool bReturn = FuDraw::MouseButtonDown(rMEvt); @@ -674,14 +675,18 @@ sal_Bool FuText::MouseButtonUp(const MouseEvent& rMEvt) sal_uInt16 nDrgLog = sal_uInt16 ( mpWindow->PixelToLogic(Size(DRGPIX,0)).Width() ); - if ( mpView->IsRotateAllowed() && mpViewShell->GetFrameView()->IsClickChangeRotation() && (rMEvt.GetClicks() != 2) && !bJustEndedEdit && + if (bJustEndedEdit) + { + bJustEndedEdit = false; + FuPoor::cancel(); + } + if ((rMEvt.GetClicks() != 2) && !rMEvt.IsShift() && !rMEvt.IsMod1() && !rMEvt.IsMod2() && !rMEvt.IsRight() && Abs(aPnt.X() - aMDPos.X()) < nDrgLog && Abs(aPnt.Y() - aMDPos.Y()) < nDrgLog) { /************************************************************* - * If a user wants to click on an object in front of a masked - * one, he releases the mouse button immediately + * From text mode, you don't want to rotate immediately. **************************************************************/ if (mpView->PickObj(aMDPos, mpView->getHitTolLog(), pObj, pPV, SDRSEARCH_ALSOONMASTER | SDRSEARCH_BEFOREMARK)) { @@ -689,12 +694,7 @@ sal_Bool FuText::MouseButtonUp(const MouseEvent& rMEvt) mpView->MarkObj(pObj,pPV,false,false); return (bReturn); } - // toggle to rotation mode - mpViewShell->GetViewFrame()->GetDispatcher()->Execute( SID_OBJECT_ROTATE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD ); } - - if( bJustEndedEdit ) - bJustEndedEdit = false; } else if( mpView && mpView->IsCreateObj() && rMEvt.IsLeft()) { @@ -914,7 +914,11 @@ sal_Bool FuText::MouseButtonUp(const MouseEvent& rMEvt) SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD ); } } - + if (bJustEndedEdit) + { + bJustEndedEdit = false; + FuPoor::cancel(); + } bMBDown = sal_False; FuConstruct::MouseButtonUp(rMEvt); return (bReturn); |