sd/source/ui/view/sdview.cxx | 8 ---- svx/source/sidebar/SelectionAnalyzer.cxx | 59 +++++++++++++++++++------------ svx/source/svdraw/svdedxv.cxx | 4 ++ 3 files changed, 41 insertions(+), 30 deletions(-)
New commits: commit 007e4d0e662bb9437bd013f8c9a49ebb7c0a380a Author: Oliver-Rainer Wittmann <[email protected]> Date: Fri Apr 26 11:20:19 2013 +0000 Related: #i122156# #i122087# correct context notification... regarding the text edit mode for Drawing objects (cherry picked from commit a0e76afb572510e2c2c75fc6c558f271c0d74d0b) Change-Id: I8b4e5cbd865455ef3d7046f9d65c5dd68a53d8ce diff --git a/sd/source/ui/view/sdview.cxx b/sd/source/ui/view/sdview.cxx index a908a61..c930b1b 100644 --- a/sd/source/ui/view/sdview.cxx +++ b/sd/source/ui/view/sdview.cxx @@ -695,10 +695,6 @@ sal_Bool View::SdrBeginTextEdit( pGivenOutlinerView, bDontDeleteOutliner, bOnlyOneView, bGrabFocus); - ContextChangeEventMultiplexer::NotifyContextChange( - &GetViewShell()->GetViewShellBase(), - ::sfx2::sidebar::EnumContext::Context_DrawText); - if (bReturn) { ::Outliner* pOL = GetTextEditOutliner(); @@ -765,10 +761,6 @@ SdrEndTextEditKind View::SdrEndTextEdit(sal_Bool bDontDeleteReally ) if( xObj.is() ) { - ContextChangeEventMultiplexer::NotifyContextChange( - &GetViewShell()->GetViewShellBase(), - ::sfx2::sidebar::EnumContext::Context_Default); - SdPage* pPage = dynamic_cast< SdPage* >( xObj->GetPage() ); if( pPage ) pPage->onEndTextEdit( xObj.get() ); diff --git a/svx/source/sidebar/SelectionAnalyzer.cxx b/svx/source/sidebar/SelectionAnalyzer.cxx index 2f201e9..44fa407 100644 --- a/svx/source/sidebar/SelectionAnalyzer.cxx +++ b/svx/source/sidebar/SelectionAnalyzer.cxx @@ -19,6 +19,7 @@ #include "svx/sidebar/SelectionAnalyzer.hxx" #include "svx/svdmrkv.hxx" #include "svx/svdobj.hxx" +#include "svx/svdotext.hxx" #include "svx/svdpage.hxx" #include "svx/fmglob.hxx" #include "svx/globl3d.hxx" @@ -42,12 +43,19 @@ EnumContext::Context SelectionAnalyzer::GetContextForSelection_SC (const SdrMark case 1: { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); - const sal_uInt32 nInv = pObj->GetObjInventor(); - const sal_uInt16 nObjId = pObj->GetObjIdentifier(); - if (nInv == SdrInventor) - eContext = GetContextForObjectId_SC(nObjId); - else if (nInv == FmFormInventor) - eContext = EnumContext::Context_Form; + if ( pObj->ISA(SdrTextObj) && ((SdrTextObj*)pObj)->IsInEditMode() ) + { + eContext = EnumContext::Context_DrawText; + } + else + { + const sal_uInt32 nInv = pObj->GetObjInventor(); + const sal_uInt16 nObjId = pObj->GetObjIdentifier(); + if (nInv == SdrInventor) + eContext = GetContextForObjectId_SC(nObjId); + else if (nInv == FmFormInventor) + eContext = EnumContext::Context_Form; + } break; } @@ -109,25 +117,32 @@ EnumContext::Context SelectionAnalyzer::GetContextForSelection_SD ( case 1: { SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); - const sal_uInt32 nInv = pObj->GetObjInventor(); - sal_uInt16 nObjId = pObj->GetObjIdentifier(); - if (nInv == SdrInventor) - { - if (nObjId == OBJ_GRUP) - { - nObjId = GetObjectTypeFromGroup(pObj); - if (nObjId == 0) - nObjId = OBJ_GRUP; - } - eContext = GetContextForObjectId_SD(nObjId, bIsHandoutPage, bIsNotesPage); - } - else if (nInv == E3dInventor) + if ( pObj->ISA(SdrTextObj) && ((SdrTextObj*)pObj)->IsInEditMode() ) { - eContext = EnumContext::Context_3DObject; + eContext = EnumContext::Context_DrawText; } - else if (nInv == FmFormInventor) + else { - eContext = EnumContext::Context_Form; + const sal_uInt32 nInv = pObj->GetObjInventor(); + sal_uInt16 nObjId = pObj->GetObjIdentifier(); + if (nInv == SdrInventor) + { + if (nObjId == OBJ_GRUP) + { + nObjId = GetObjectTypeFromGroup(pObj); + if (nObjId == 0) + nObjId = OBJ_GRUP; + } + eContext = GetContextForObjectId_SD(nObjId, bIsHandoutPage, bIsNotesPage); + } + else if (nInv == E3dInventor) + { + eContext = EnumContext::Context_3DObject; + } + else if (nInv == FmFormInventor) + { + eContext = EnumContext::Context_Form; + } } break; } diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 654cf7f..0866328 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -673,6 +673,8 @@ sal_Bool SdrObjEditView::SdrBeginTextEdit( // Since IsMarkHdlWhenTextEdit() is ignored, it is necessary // to call AdjustMarkHdl() always. AdjustMarkHdl(); + // Call <MarkListHasChanged()> as it also handles context changes for sidebar + MarkListHasChanged(); pTextEditOutlinerView=ImpMakeOutlinerView(pWin,!bEmpty,pGivenOutlinerView); @@ -926,6 +928,8 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(sal_Bool bDontDeleteReally) // Since IsMarkHdlWhenTextEdit() is ignored, it is necessary // to call AdjustMarkHdl() always. AdjustMarkHdl(); + // Call <MarkListHasChanged()> as it also handles context changes for sidebar + MarkListHasChanged(); } // delete all OutlinerViews for (sal_uIntPtr i=pTEOutliner->GetViewCount(); i>0;) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
