summaryrefslogtreecommitdiffstats
path: root/sd
diff options
context:
space:
mode:
authorLennard Wasserthal <Wasserthal@nefkom.net>2013-02-09 14:31:21 +0100
committerTor Lillqvist <tml@iki.fi>2013-02-11 10:10:29 +0000
commite80a8b6f14fac6bb6cc7ea55b118f95472d5b654 (patch)
tree7b3cf8169527aed8af7236ebd982b64673468d21 /sd
parentFixed compilation error of Clang plugins on Ubuntu/Mint (diff)
downloadcore-e80a8b6f14fac6bb6cc7ea55b118f95472d5b654.tar.gz
core-e80a8b6f14fac6bb6cc7ea55b118f95472d5b654.zip
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.cxx5
-rw-r--r--sd/source/ui/func/futext.cxx22
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);