diff -uNr sw.old/source/ui/shells/textsh.cxx sw.new/source/ui/shells/textsh.cxx --- sw.old/source/ui/shells/textsh.cxx 2008-08-11 16:23:22.000000000 +0800 +++ sw.new/source/ui/shells/textsh.cxx 2008-09-09 14:13:12.000000000 +0800 @@ -240,6 +240,9 @@ #ifndef _UNOCHART_HXX #include #endif +#ifndef _NDTXT_HXX +#include +#endif//0909 #include @@ -946,6 +949,11 @@ SvtModuleOptions aMOpt; SfxObjectCreateMode eCreateMode = GetView().GetDocShell()->GetCreateMode(); + BOOL bCrsrInHidden = FALSE; + const SwTxtNode *pNd = rSh.GetCrsr()->GetPoint()->nNode.GetNode().GetTxtNode(); + if ( pNd && pNd->IsHidden() && !rSh.GetViewOptions()->IsShowHiddenChar() ) + bCrsrInHidden = TRUE; + while ( nWhich ) { switch ( nWhich ) @@ -961,14 +969,14 @@ break; case SID_INSERT_DIAGRAM: - if( !aMOpt.IsChart() || eCreateMode == SFX_CREATE_MODE_EMBEDDED) + if( !aMOpt.IsChart() || eCreateMode == SFX_CREATE_MODE_EMBEDDED || bCrsrInHidden ) { rSet.DisableItem( nWhich ); } break; case FN_INSERT_SMA: - if( !aMOpt.IsMath() || eCreateMode == SFX_CREATE_MODE_EMBEDDED) + if( !aMOpt.IsMath() || eCreateMode == SFX_CREATE_MODE_EMBEDDED || bCrsrInHidden ) { rSet.DisableItem( nWhich ); } @@ -983,7 +991,7 @@ #ifndef SOLAR_JAVA nWhich == SID_INSERT_APPLET || #endif - eCreateMode == SFX_CREATE_MODE_EMBEDDED) + eCreateMode == SFX_CREATE_MODE_EMBEDDED || bCrsrInHidden ) { rSet.DisableItem( nWhich ); } @@ -1067,7 +1075,7 @@ } break; case FN_INSERT_HRULER : - if(rSh.IsReadOnlyAvailable() && rSh.HasReadonlySel() ) + if(rSh.IsReadOnlyAvailable() && rSh.HasReadonlySel() || bCrsrInHidden ) rSet.DisableItem(nWhich); break; case FN_FORMAT_COLUMN :