summaryrefslogtreecommitdiff
path: root/sw/source/ui/docvw/edtwin.cxx
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2010-10-28 23:02:10 +0200
committerMathias Bauer <mba@openoffice.org>2010-10-28 23:02:10 +0200
commit0fe045d9566b66b766a8dd967e65ad6d57d78e5b (patch)
tree7a7506427f1225f68a2179fa9e40f9e013549ea4 /sw/source/ui/docvw/edtwin.cxx
parent75999228ead62620ed8b9d3970277bf916af3d6d (diff)
parent8409cfd0c4842fae1e087f8c932748f9305871a8 (diff)
CWS gnumake: resync to m91; conflicts unresolved
Diffstat (limited to 'sw/source/ui/docvw/edtwin.cxx')
-rw-r--r--sw/source/ui/docvw/edtwin.cxx49
1 files changed, 44 insertions, 5 deletions
diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
index e2e59e17831e..5049220b1b5a 100644
--- a/sw/source/ui/docvw/edtwin.cxx
+++ b/sw/source/ui/docvw/edtwin.cxx
@@ -193,15 +193,51 @@ class SwAnchorMarker
SdrHdl* pHdl;
Point aHdlPos;
Point aLastPos;
+ // --> OD 2010-09-16 #i114522#
+ bool bTopRightHandle;
+ // <--
public:
- SwAnchorMarker( SdrHdl* pH ) :
- pHdl( pH ), aHdlPos( pH->GetPos() ), aLastPos( pH->GetPos() ) {}
+ SwAnchorMarker( SdrHdl* pH )
+ : pHdl( pH )
+ , aHdlPos( pH->GetPos() )
+ , aLastPos( pH->GetPos() )
+ // --> OD 2010-09-16 #i114522#
+ , bTopRightHandle( pH->GetKind() == HDL_ANCHOR_TR )
+ // <--
+ {}
const Point& GetLastPos() const { return aLastPos; }
void SetLastPos( const Point& rNew ) { aLastPos = rNew; }
void SetPos( const Point& rNew ) { pHdl->SetPos( rNew ); }
const Point& GetPos() { return pHdl->GetPos(); }
const Point& GetHdlPos() { return aHdlPos; }
- void ChgHdl( SdrHdl* pNew ) { pHdl = pNew; }
+ void ChgHdl( SdrHdl* pNew )
+ {
+ pHdl = pNew;
+ // --> OD 2010-09-16 #i114522#
+ if ( pHdl )
+ {
+ bTopRightHandle = (pHdl->GetKind() == HDL_ANCHOR_TR);
+ }
+ // <--
+ }
+ // --> OD 2010-09-16 #i114522#
+ const Point GetPosForHitTest( const OutputDevice& rOut )
+ {
+ Point aHitTestPos( GetPos() );
+ aHitTestPos = rOut.LogicToPixel( aHitTestPos );
+ if ( bTopRightHandle )
+ {
+ aHitTestPos += Point( -1, 1 );
+ }
+ else
+ {
+ aHitTestPos += Point( 1, 1 );
+ }
+ aHitTestPos = rOut.PixelToLogic( aHitTestPos );
+
+ return aHitTestPos;
+ }
+ // <--
};
struct QuickHelpData
@@ -2261,7 +2297,7 @@ KEYINPUT_CHECKTABLE_INSDEL:
BOOL bIsAutoCorrectChar = SvxAutoCorrect::IsAutoCorrectChar( aCh );
- BOOL bRunNext = pACorr->HasRunNext();
+ BOOL bRunNext = pACorr && pACorr->HasRunNext();
if( !aKeyEvent.GetRepeat() && pACorr && ( bIsAutoCorrectChar || bRunNext ) &&
pACfg->IsAutoFmtByInput() &&
(( pACorr->IsAutoCorrFlag( ChgWeightUnderl ) &&
@@ -3609,7 +3645,10 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt)
// So the pAnchorMarker has to find the right SdrHdl, if it's
// the old one, it will find it with position aOld, if this one
// is destroyed, it will find a new one at position GetHdlPos().
- Point aOld = pAnchorMarker->GetPos();
+ // --> OD 2010-09-16 #i114522#
+// const Point aOld = pAnchorMarker->GetPos();
+ const Point aOld = pAnchorMarker->GetPosForHitTest( *(rSh.GetOut()) );
+ // <--
Point aNew = rSh.FindAnchorPos( aDocPt );
SdrHdl* pHdl;
if( (0!=( pHdl = pSdrView->PickHandle( aOld ) )||