sc/source/ui/inc/notemark.hxx | 3 ++- sc/source/ui/view/gridwin5.cxx | 20 +++++++++++++++++++- sc/source/ui/view/notemark.cxx | 3 +++ sc/source/ui/view/viewfun6.cxx | 3 +++ 4 files changed, 27 insertions(+), 2 deletions(-)
New commits: commit cce13e3f6a42c10232653dbd52088743f935c7d0 Author: Noel Power <noel.po...@suse.com> Date: Tue Dec 4 16:49:34 2012 +0000 fix problem with captions inserted at problematic zoom levels also makes sure that caption drawn ( when hovering over note cell ) is drawn at the correct position also ( e.g. corrected for zoom pos ) Change-Id: I7c06dd74d26e37d69bcc5a5734fae676aa7599e7 diff --git a/sc/source/ui/inc/notemark.hxx b/sc/source/ui/inc/notemark.hxx index 501ec7f..acf4757 100644 --- a/sc/source/ui/inc/notemark.hxx +++ b/sc/source/ui/inc/notemark.hxx @@ -48,7 +48,7 @@ private: SdrModel* pModel; SdrObject* pObject; sal_Bool bVisible; - + Point aGridOff; DECL_LINK( TimeHdl, void* ); public: @@ -62,6 +62,7 @@ public: ScAddress GetDocPos() const { return aDocPos; } sal_Bool IsByKeyboard() const { return bByKeyboard; } + void SetGridOff( const Point& rOff ) { aGridOff = rOff; } }; diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx index a82fc30..e7e3edc 100644 --- a/sc/source/ui/view/gridwin5.cxx +++ b/sc/source/ui/view/gridwin5.cxx @@ -204,9 +204,27 @@ bool ScGridWindow::ShowNoteMarker( SCsCOL nPosX, SCsROW nPosY, bool bKeyboard ) aOrigin.Y() += aLeftSize.Height(); aMapMode.SetOrigin( aOrigin ); - pNoteMarker = new ScNoteMarker( pLeft, pRight, pBottom, pDiagonal, + pNoteMarker = new ScNoteMarker( pLeft, pRight, pBottom, pDiagonal, pDoc, aCellPos, aTrackText, aMapMode, bLeftEdge, bFast, bKeyboard ); + if ( ScDrawView* pDrawView = pViewData->GetScDrawView() ) + { + // get position for aCellPos + if ( pDoc ) + { + // get draw position in hmm for aCellPos + Point aOldPos( pDoc->GetColOffset( aCellPos.Col(), aCellPos.Tab() ), pDoc->GetRowOffset( aCellPos.Row(), aCellPos.Tab() ) ); + aOldPos.X() = sc::TwipsToHMM( aOldPos.X() ); + aOldPos.Y() = sc::TwipsToHMM( aOldPos.Y() ); + // get screen pos in hmm for aCellPos + // and equiv screen pos + Point aScreenPos = pViewData->GetScrPos( aCellPos.Col(), aCellPos.Row(), eWhich, sal_True ); + MapMode aDrawMode = GetDrawMapMode(); + Point aCurPosHmm = PixelToLogic(aScreenPos, aDrawMode ); + Point aGridOff = aCurPosHmm -aOldPos; + pNoteMarker->SetGridOff( aGridOff ); + } + } } bDone = true; // something is shown (old or new) diff --git a/sc/source/ui/view/notemark.cxx b/sc/source/ui/view/notemark.cxx index 0958d8d..2735a25 100644 --- a/sc/source/ui/view/notemark.cxx +++ b/sc/source/ui/view/notemark.cxx @@ -98,7 +98,10 @@ IMPL_LINK_NOARG(ScNoteMarker, TimeHdl) { pObject = ScNoteUtil::CreateTempCaption( *pDoc, aDocPos, *pPage, aUserText, aVisRect, bLeft ); if( pObject ) + { + pObject->SetGridOffset( aGridOff ); aRect = pObject->GetCurrentBoundRect(); + } // Page einfuegen damit das Model sie kennt und auch deleted pModel->InsertPage( pPage ); diff --git a/sc/source/ui/view/viewfun6.cxx b/sc/source/ui/view/viewfun6.cxx index e9ec827..86b04f6 100644 --- a/sc/source/ui/view/viewfun6.cxx +++ b/sc/source/ui/view/viewfun6.cxx @@ -42,6 +42,7 @@ #include "externalrefmgr.hxx" #include "cell.hxx" #include "markdata.hxx" +#include "drawview.hxx" #include <vector> @@ -313,6 +314,8 @@ void ScViewFunc::EditNote() return a caption object. */ if( SdrCaptionObj* pCaption = pNote->GetCaption() ) { + if ( ScDrawView* pScDrawView = GetScDrawView() ) + pScDrawView->SyncForGrid( pCaption ); // #i33764# enable the resize handles before starting edit mode if( FuPoor* pDraw = GetDrawFuncPtr() ) static_cast< FuSelection* >( pDraw )->ActivateNoteHandles( pCaption ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits