summaryrefslogtreecommitdiff
path: root/sd/source
diff options
context:
space:
mode:
authorsb <sb@openoffice.org>2009-12-07 09:34:25 +0100
committersb <sb@openoffice.org>2009-12-07 09:34:25 +0100
commite8686219ade1a44544d8c89246b75b19ab8eb67d (patch)
tree10a68417cc92f1d5de80ca94192296c2473d94f5 /sd/source
parentcd65799aee7f9518572c9ab556e3f55cf449c87f (diff)
parent3838b0a0e8c89da328481dd6d417f5e4ebaeb953 (diff)
merged in DEV300_m66
Diffstat (limited to 'sd/source')
-rw-r--r--sd/source/filter/eppt/eppt.cxx119
-rw-r--r--sd/source/filter/eppt/eppt.hxx1
-rw-r--r--sd/source/filter/eppt/epptso.cxx47
-rw-r--r--sd/source/ui/app/sdmod.cxx12
-rw-r--r--sd/source/ui/app/tbxww.cxx2
-rw-r--r--sd/source/ui/dlg/PaneDockingWindow.cxx2
-rw-r--r--sd/source/ui/dlg/animobjs.cxx4
-rw-r--r--sd/source/ui/dlg/ins_paste.cxx4
-rw-r--r--sd/source/ui/dlg/navigatr.cxx2
-rw-r--r--sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx22
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSlotManager.cxx8
-rw-r--r--sd/source/ui/table/TableDesignPane.cxx4
-rw-r--r--sd/source/ui/toolpanel/LayoutMenu.cxx13
-rw-r--r--sd/source/ui/toolpanel/TitleToolBox.cxx2
-rw-r--r--sd/source/ui/unoidl/unopage.cxx2
-rw-r--r--sd/source/ui/view/Outliner.cxx3
16 files changed, 75 insertions, 172 deletions
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index cb31e99aec63..ef697cfa9733 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -222,8 +222,6 @@ PPTWriter::PPTWriter( SvStorageRef& rSvStorage,
}
if ( !ImplCreateMainNotes() )
return;
- maTextRuleList.First(); // rewind list, so we can get the current or next entry without
- // searching, all entrys are sorted#
for ( i = 0; i < mnPages; i++ )
{
if ( !ImplCreateSlide( i ) )
@@ -274,8 +272,6 @@ PPTWriter::~PPTWriter()
while( aStyleSheetIter < maStyleSheetList.end() )
delete *aStyleSheetIter++;
- for ( pPtr = maTextRuleList.First(); pPtr; pPtr = maTextRuleList.Next() )
- delete (TextRuleEntry*)pPtr;
for ( pPtr = maSlideNameList.First(); pPtr; pPtr = maSlideNameList.Next() )
delete (::rtl::OUString*)pPtr;
for ( pPtr = maHyperlink.First(); pPtr; pPtr = maHyperlink.Next() )
@@ -560,22 +556,12 @@ sal_Bool PPTWriter::ImplCreateDocument()
mpPptEscherEx->OpenContainer( EPP_SlideListWithText ); // Animation info fuer die Slides
- sal_uInt32 nShapes;
- sal_Bool bOtherThanPlaceHolders;
-
for ( i = 0; i < mnPages; i++ )
{
- sal_uInt32 nPOffset, nPObjects;
- sal_Bool bOutliner, bTitle;
-
- bOtherThanPlaceHolders = bOutliner = bTitle = FALSE;
- nPObjects = 0;
-
mpPptEscherEx->AddAtom( 20, EPP_SlidePersistAtom );
mpPptEscherEx->InsertPersistOffset( EPP_MAINSLIDE_PERSIST_KEY | i, mpStrm->Tell() );
- *mpStrm << (sal_uInt32)0; // psrReference - logical reference to the slide persist object ( EPP_MAINSLIDE_PERSIST_KEY )
- nPOffset = mpStrm->Tell();
- *mpStrm << (sal_uInt32)0 // flags - only bit 3 used, if set then slide contains shapes other than placeholders
+ *mpStrm << (sal_uInt32)0 // psrReference - logical reference to the slide persist object ( EPP_MAINSLIDE_PERSIST_KEY )
+ << (sal_uInt32)4 // flags - only bit 3 used, if set then slide contains shapes other than placeholders
<< (INT32)0 // numberTexts - number of placeholder texts stored with the persist object. Allows to display outline view without loading the slide persist objects
<< (INT32)i + 0x100 // slideId - Unique slide identifier, used for OLE link monikers for example
<< (sal_uInt32)0; // reserved, usualy 0
@@ -584,8 +570,6 @@ sal_Bool PPTWriter::ImplCreateDocument()
return FALSE;
ImplSetCurrentStyleSheet( ImplGetMasterIndex( NORMAL ) );
- const PHLayout& rLayout = ImplGetLayout( mXPagePropSet );
-
::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >
aXName( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
@@ -597,113 +581,16 @@ sal_Bool PPTWriter::ImplCreateDocument()
}
else
maSlideNameList.Insert( new ::rtl::OUString(), LIST_APPEND );
-
- nShapes = mXShapes->getCount();
-
- sal_Bool bSecOutl = FALSE;
- if ( nShapes && ( rLayout.bTitlePossible || rLayout.bOutlinerPossible ) )
- {
- for ( sal_uInt32 nIndex = 0; nIndex < nShapes; nIndex++ )
- {
- if ( !ImplGetShapeByIndex( nIndex ) )
- continue;
-
- if ( mbPresObj && ( ( mType == "presentation.Outliner" ) || ( mType == "presentation.Subtitle" ) ) )
- {
- if ( bOutliner == FALSE )
- {
- bOutliner = TRUE;
- mnTextStyle = EPP_TEXTSTYLE_BODY;
- sal_uInt32 nTextType = EPP_TEXTTYPE_Body;
- if ( bSecOutl )
- nTextType = EPP_TEXTTYPE_HalfBody;
- else if ( mType == "presentation.Subtitle" )
- nTextType = EPP_TEXTTYPE_CenterBody;
-
- TextRuleEntry* pRule = new TextRuleEntry( i );
- SvMemoryStream aExtBu( 0x200, 0x200 );
- if ( !mbEmptyPresObj )
- ImplGetText();
- ImplWriteTextStyleAtom( *mpStrm, nTextType, nPObjects, pRule, aExtBu, NULL );
- ImplWriteExtParaHeader( aExtBu, nPObjects++, nTextType, i + 0x100 );
- maTextRuleList.Insert( (void*)pRule, LIST_APPEND );
- if ( rLayout.bSecOutlinerPossible )
- {
- if ( ( nIndex + 1 ) < nShapes )
- {
- if ( ImplGetShapeByIndex( nIndex + 1 ) && mType == "presentation.Outliner" )
- {
- bSecOutl = TRUE;
- TextRuleEntry* pTempRule = new TextRuleEntry( i );
- SvMemoryStream aTmpStrm( 0x200, 0x200 );
- if ( !mbEmptyPresObj )
- ImplGetText();
- ImplWriteTextStyleAtom( *mpStrm, nTextType, nPObjects, pTempRule, aTmpStrm, NULL );
- ImplWriteExtParaHeader( aTmpStrm, nPObjects++, nTextType, i + 0x100 );
- maTextRuleList.Insert( (void*)pTempRule, LIST_APPEND );
- }
- }
- }
- }
- }
- else if ( rLayout.bTitlePossible && ( mType == "presentation.TitleText" ) )
- {
- if ( bTitle == FALSE )
- {
- bTitle = TRUE;
- mnTextStyle = EPP_TEXTSTYLE_TITLE;
- TextRuleEntry* pRule = new TextRuleEntry( i );
- SvMemoryStream aExtBu( 0x200, 0x200 );
- if ( !mbEmptyPresObj )
- ImplGetText();
- ImplWriteTextStyleAtom( *mpStrm, EPP_TEXTTYPE_Title, nPObjects, pRule, aExtBu, NULL );
- ImplWriteExtParaHeader( aExtBu, nPObjects++, EPP_TEXTTYPE_Title, i + 0x100 );
- maTextRuleList.Insert( (void*)pRule, LIST_APPEND );
- }
- }
- else
- {
- if ( mbEmptyPresObj )
- nPObjects++;
- else
- bOtherThanPlaceHolders = TRUE; // muss noch auf background und leeren Title/outliner geprueft werden !!!
- }
- if ( bOutliner && bTitle && bOtherThanPlaceHolders )
- break;
- }
- }
- if ( nPObjects )
- {
- sal_uInt32 nOldPos = mpStrm->Tell();
- mpStrm->Seek( nPOffset );
- *mpStrm << (sal_uInt32)( ( bOtherThanPlaceHolders ) ? 4 : 0 );
- *mpStrm << nPObjects;
- mpStrm->Seek( nOldPos );
- }
}
mpPptEscherEx->CloseContainer(); // EPP_SlideListWithText
mpPptEscherEx->OpenContainer( EPP_SlideListWithText, 2 ); // Animation info fuer die notes
for( i = 0; i < mnPages; i++ )
{
- if ( !ImplGetPageByIndex( i, NOTICE ) )
- return FALSE;
-
- nShapes = mXShapes->getCount();
-
- bOtherThanPlaceHolders = FALSE;
- if ( nShapes )
- {
- for ( sal_uInt32 nIndex = 0; ( nIndex < nShapes ) && ( bOtherThanPlaceHolders == FALSE ); nIndex++ )
- {
- if ( ImplGetShapeByIndex( nIndex ) && ( mType != "drawing.Page" ) )
- bOtherThanPlaceHolders = TRUE;
- }
- }
mpPptEscherEx->AddAtom( 20, EPP_SlidePersistAtom );
mpPptEscherEx->InsertPersistOffset( EPP_MAINNOTES_PERSIST_KEY | i, mpStrm->Tell() );
*mpStrm << (sal_uInt32)0
- << (sal_uInt32)( ( bOtherThanPlaceHolders ) ? 4 : 0 )
+ << (sal_uInt32)4
<< (INT32)0
<< (INT32)i + 0x100
<< (sal_uInt32)0;
diff --git a/sd/source/filter/eppt/eppt.hxx b/sd/source/filter/eppt/eppt.hxx
index 84b64e33157c..2ef66bb9be75 100644
--- a/sd/source/filter/eppt/eppt.hxx
+++ b/sd/source/filter/eppt/eppt.hxx
@@ -756,7 +756,6 @@ class PPTWriter : public GroupTable, public PropValue, public PPTExBulletProvide
sal_uInt32 mnShapeMasterTitle;
sal_uInt32 mnShapeMasterBody;
- List maTextRuleList; // TextRuleEntry's
List maHyperlink;
FontCollection maFontCollection;
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index 75e5a4ba3227..fbb46dc20b0f 100644
--- a/sd/source/filter/eppt/epptso.cxx
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -4239,6 +4239,9 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
sal_Bool bAdditionalText = FALSE;
+ sal_Bool bSecOutl = FALSE;
+ sal_uInt32 nPObjects = 0;
+
SvMemoryStream* pClientTextBox = NULL;
SvMemoryStream* pClientData = NULL;
@@ -5341,32 +5344,32 @@ void PPTWriter::ImplWritePage( const PHLayout& rLayout, EscherSolverContainer& a
if ( !pClientTextBox )
pClientTextBox = new SvMemoryStream( 0x200, 0x200 );
- *pClientTextBox << (sal_uInt32)( EPP_OutlineTextRefAtom << 16 ) << (sal_uInt32)4
- << nPlacementID;
-
if ( mbEmptyPresObj == FALSE )
{
if ( ( ePageType == NORMAL ) && ( bMasterPage == FALSE ) )
- { // try to allocate the textruleratom
- TextRuleEntry* pTextRule = (TextRuleEntry*)maTextRuleList.GetCurObject();
- while ( pTextRule )
+ {
+ sal_uInt32 nTextType = EPP_TEXTTYPE_Body;
+ if ( mnTextStyle == EPP_TEXTSTYLE_BODY )
{
- int nRulePage = pTextRule->nPageNumber;
- if ( nRulePage > nPageNumber )
- break;
- else if ( nRulePage < nPageNumber )
- pTextRule = (TextRuleEntry*)maTextRuleList.Next();
- else
- {
- SvMemoryStream* pOut = pTextRule->pOut;
- if ( pOut )
- {
- pClientTextBox->Write( pOut->GetData(), pOut->Tell() );
- delete pOut, pTextRule->pOut = NULL;
- }
- maTextRuleList.Next();
- break;
- }
+ if ( bSecOutl )
+ nTextType = EPP_TEXTTYPE_HalfBody;
+ else if ( mType == "presentation.Subtitle" )
+ nTextType = EPP_TEXTTYPE_CenterBody;
+ bSecOutl = sal_True;
+ }
+ else
+ nTextType = EPP_TEXTTYPE_Title;
+
+ TextRuleEntry aTextRule( nPageNumber );
+ SvMemoryStream aExtBu( 0x200, 0x200 );
+ ImplGetText();
+ ImplWriteTextStyleAtom( *pClientTextBox, nTextType, nPObjects, &aTextRule, aExtBu, NULL );
+ ImplWriteExtParaHeader( aExtBu, nPObjects++, nTextType, nPageNumber + 0x100 );
+ SvMemoryStream* pOut = aTextRule.pOut;
+ if ( pOut )
+ {
+ pClientTextBox->Write( pOut->GetData(), pOut->Tell() );
+ delete pOut, aTextRule.pOut = NULL;
}
}
}
diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
index f7e74a481740..957b1aa0475b 100644
--- a/sd/source/ui/app/sdmod.cxx
+++ b/sd/source/ui/app/sdmod.cxx
@@ -131,11 +131,6 @@ SdModule::SdModule(SfxObjectFactory* pFact1, SfxObjectFactory* pFact2 )
SdModule::~SdModule()
{
- // Mark the module in the global AppData structure as deleted.
- SdModule** ppShellPointer = (SdModule**)GetAppData(SHL_DRAW);
- if (ppShellPointer != NULL)
- (*ppShellPointer) = NULL;
-
delete pSearchItem;
if( pNumberFormatter )
@@ -152,6 +147,13 @@ SdModule::~SdModule()
}
}
+ mpResourceContainer.reset();
+
+ // Mark the module in the global AppData structure as deleted.
+ SdModule** ppShellPointer = (SdModule**)GetAppData(SHL_DRAW);
+ if (ppShellPointer != NULL)
+ (*ppShellPointer) = NULL;
+
delete mpErrorHdl;
delete static_cast< VirtualDevice* >( mpVirtualRefDevice );
}
diff --git a/sd/source/ui/app/tbxww.cxx b/sd/source/ui/app/tbxww.cxx
index e94fe501d73b..4318f8f9b4ac 100644
--- a/sd/source/ui/app/tbxww.cxx
+++ b/sd/source/ui/app/tbxww.cxx
@@ -311,7 +311,7 @@ void SdTbxControl::StateChanged( USHORT nSId,
Image aImage = GetImage( m_xFrame,
aSlotURL,
hasBigImages(),
- GetToolBox().GetDisplayBackground().GetColor().IsDark() );
+ GetToolBox().GetSettings().GetStyleSettings().GetHighContrastMode() );
// !-Operator prueft, ob Image nicht vorhanden ist
if( !!aImage )
diff --git a/sd/source/ui/dlg/PaneDockingWindow.cxx b/sd/source/ui/dlg/PaneDockingWindow.cxx
index 9ae95a079bd6..2aa6039cfb76 100644
--- a/sd/source/ui/dlg/PaneDockingWindow.cxx
+++ b/sd/source/ui/dlg/PaneDockingWindow.cxx
@@ -263,7 +263,7 @@ void PaneDockingWindow::InitializeTitleToolBox (void)
Image aImage = Image (aBitmap, Color (COL_LIGHTMAGENTA));
Image aImageHC = Image (aBitmapHC, Color (BMP_COLOR_HIGHCONTRAST));
mpTitleToolBox->InsertItem (1,
- GetSettings().GetStyleSettings().GetMenuBarColor().IsDark()
+ GetSettings().GetStyleSettings().GetHighContrastMode()
? aImageHC
: aImage);
mpTitleToolBox->ShowItem (1);
diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
index 0c05c58312b8..84d030867abb 100644
--- a/sd/source/ui/dlg/animobjs.cxx
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -138,7 +138,7 @@ void SdDisplay::DataChanged( const DataChangedEvent& rDCEvt )
{
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
SetBackground( Wallpaper( Color( rStyles.GetFieldColor() ) ) );
- SetDrawMode( GetDisplayBackground().GetColor().IsDark()
+ SetDrawMode( GetSettings().GetStyleSettings().GetHighContrastMode()
? ViewShell::OUTPUT_DRAWMODE_CONTRAST
: ViewShell::OUTPUT_DRAWMODE_COLOR );
}
@@ -601,7 +601,7 @@ void AnimationWindow::UpdateControl( ULONG nListPos, BOOL bDisableCtrls )
aVD.SetOutputSize( aObjSize );
const StyleSettings& rStyles = Application::GetSettings().GetStyleSettings();
aVD.SetBackground( Wallpaper( rStyles.GetFieldColor() ) );
- aVD.SetDrawMode( GetDisplayBackground().GetColor().IsDark()
+ aVD.SetDrawMode( rStyles.GetHighContrastMode()
? ViewShell::OUTPUT_DRAWMODE_CONTRAST
: ViewShell::OUTPUT_DRAWMODE_COLOR );
aVD.Erase();
diff --git a/sd/source/ui/dlg/ins_paste.cxx b/sd/source/ui/dlg/ins_paste.cxx
index 9f2c3bf0b6b6..422acbec4a73 100644
--- a/sd/source/ui/dlg/ins_paste.cxx
+++ b/sd/source/ui/dlg/ins_paste.cxx
@@ -31,6 +31,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sd.hxx"
+#ifdef SD_DLLIMPLEMENTATION
+#undef SD_DLLIMPLEMENTATION
+#endif
+
#include "ins_paste.hrc"
#include "ins_paste.hxx"
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
index fa31c7fbb209..f251f6964263 100644
--- a/sd/source/ui/dlg/navigatr.cxx
+++ b/sd/source/ui/dlg/navigatr.cxx
@@ -863,7 +863,7 @@ void SdNavigatorWin::SetDragImage()
void SdNavigatorWin::ApplyImageList()
{
- const bool bHighContrast = GetDisplayBackground().GetColor().IsDark() != 0;
+ const bool bHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();
maToolbox.SetImageList( bHighContrast ? maImageListH : maImageList );
diff --git a/sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx b/sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx
index f634d437ba4b..09c633424c6d 100644
--- a/sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx
+++ b/sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx
@@ -161,11 +161,12 @@ void QueueProcessor::ProcessRequests (void)
{
OSL_ASSERT(mpCacheContext.get()!=NULL);
- while ( ! mrQueue.IsEmpty() && ! mbIsPaused)
+ // Never process more than one request at a time in order to prevent the
+ // lock up of the edit view.
+ if ( ! mrQueue.IsEmpty()
+ && ! mbIsPaused
+ && mpCacheContext->IsIdle())
{
- if ( ! mpCacheContext->IsIdle())
- break;
-
CacheKey aKey = NULL;
RequestPriorityClass ePriorityClass (NOT_VISIBLE);
{
@@ -182,25 +183,12 @@ void QueueProcessor::ProcessRequests (void)
if (aKey != NULL)
ProcessOneRequest(aKey, ePriorityClass);
-
- // Requests of lower priority are processed one at a time.
- {
- ::osl::MutexGuard aGuard (mrQueue.GetMutex());
- if ( ! mrQueue.IsEmpty())
- if (mrQueue.GetFrontPriorityClass() > 0)
- break;
- }
}
// Schedule the processing of the next element(s).
{
::osl::MutexGuard aGuard (mrQueue.GetMutex());
if ( ! mrQueue.IsEmpty())
- /*
- if (bIsShowingFullScreenShow)
- Start(mnTimeBetweenRequestsWhenNotIdle);
- else
- */
Start(mrQueue.GetFrontPriorityClass());
}
}
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index ba8dbb278ca4..4b48aa60678d 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -1085,6 +1085,14 @@ void SlotManager::InsertSlide (SfxRequest& rRequest)
rSelector.SelectPage (nInsertionIndex);
}
+ // Is there a stored insertion position?
+ else if (mrSlideSorter.GetController().GetSelectionManager()->GetInsertionPosition() >= 0)
+ {
+ nInsertionIndex
+ = mrSlideSorter.GetController().GetSelectionManager()->GetInsertionPosition() - 1;
+ rSelector.SelectPage(nInsertionIndex);
+ }
+
// Select the last page when there is at least one page.
else if (rSelector.GetPageCount() > 0)
{
diff --git a/sd/source/ui/table/TableDesignPane.cxx b/sd/source/ui/table/TableDesignPane.cxx
index 11cfdbb65ef0..098d71d1f06a 100644
--- a/sd/source/ui/table/TableDesignPane.cxx
+++ b/sd/source/ui/table/TableDesignPane.cxx
@@ -457,6 +457,10 @@ void TableDesignPane::updateLayout()
Point aPos( pValueSet->GetPosPixel() );
+ // The following line may look like a no-op but without it the
+ // control is placed off-screen when RTL is active.
+ pValueSet->SetPosPixel(pValueSet->GetPosPixel());
+
// shift show options section down
const long nOptionsPos = aPos.Y() + aValueSetSize.Height();
for( sal_Int32 nId = FL_STYLE_OPTIONS; nId <= CB_BANDED_COLUMNS; ++nId )
diff --git a/sd/source/ui/toolpanel/LayoutMenu.cxx b/sd/source/ui/toolpanel/LayoutMenu.cxx
index 7a39f1c42f15..d2faeb06eb00 100644
--- a/sd/source/ui/toolpanel/LayoutMenu.cxx
+++ b/sd/source/ui/toolpanel/LayoutMenu.cxx
@@ -63,7 +63,7 @@
#include <vcl/image.hxx>
#include <svtools/languageoptions.hxx>
#include <sfx2/app.hxx>
-#include "taskpane/TitledControl.hxx"
+#include "taskpane/TitledControl.hxx"
#include <sfx2/dispatch.hxx>
#include <sfx2/request.hxx>
#include <comphelper/processfactory.hxx>
@@ -808,7 +808,7 @@ SfxRequest LayoutMenu::CreateRequest (
void LayoutMenu::Fill (void)
{
- const bool bHighContrast = GetDisplayBackground().GetColor().IsDark() != 0;
+ const bool bHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();
SvtLanguageOptions aLanguageOptions;
sal_Bool bVertical = aLanguageOptions.IsVerticalTextEnabled();
SdDrawDocument* pDocument = mrBase.GetDocument();
@@ -917,8 +917,13 @@ void LayoutMenu::Command (const CommandEvent& rEvent)
if (GetShellManager() != NULL)
GetShellManager()->MoveToTop(this);
if (rEvent.IsMouseEvent())
- mrBase.GetViewFrame()->GetDispatcher()->ExecutePopup(
- SdResId(RID_TASKPANE_LAYOUTMENU_POPUP));
+ {
+ // Do not show the context menu when the mouse was not
+ // pressed over an item.
+ if (GetItemId(rEvent.GetMousePosPixel()) > 0)
+ mrBase.GetViewFrame()->GetDispatcher()->ExecutePopup(
+ SdResId(RID_TASKPANE_LAYOUTMENU_POPUP));
+ }
else
{
// When the command event was not caused by a mouse
diff --git a/sd/source/ui/toolpanel/TitleToolBox.cxx b/sd/source/ui/toolpanel/TitleToolBox.cxx
index b06ab615cbf2..d108724f03d4 100644
--- a/sd/source/ui/toolpanel/TitleToolBox.cxx
+++ b/sd/source/ui/toolpanel/TitleToolBox.cxx
@@ -77,7 +77,7 @@ void TitleToolBox::AddItem (ToolBoxId aId)
case TBID_DOCUMENT_CLOSE:
InsertItem (TBID_DOCUMENT_CLOSE,
- GetSettings().GetStyleSettings().GetMenuBarColor().IsDark()
+ GetSettings().GetStyleSettings().GetHighContrastMode()
? maImageHC : maImage, 0 );
break;
diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx
index a252e2302b59..15b3b2224b4b 100644
--- a/sd/source/ui/unoidl/unopage.cxx
+++ b/sd/source/ui/unoidl/unopage.cxx
@@ -1014,7 +1014,7 @@ Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName )
}
case WID_PAGE_LDBITMAP:
{
- BOOL bHC = Application::GetSettings().GetStyleSettings().GetWindowColor().IsDark();
+ BOOL bHC = Application::GetSettings().GetStyleSettings().GetHighContrastMode();
Reference< awt::XBitmap > xBitmap(
VCLUnoHelper::CreateBitmap( BitmapEx( SdResId( bHC ? BMP_PAGE_H : BMP_PAGE ) ) ) );
aAny <<= xBitmap;
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 233976585e58..ba5836e8f1db 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -334,6 +334,9 @@ void Outliner::EndSpelling (void)
{
if (mbViewShellValid)
{
+ // Keep old view shell alive until we release the outliner view.
+ ::boost::shared_ptr<ViewShell> pOldViewShell (mpViewShell);
+
ViewShellBase* pBase = PTR_CAST(ViewShellBase,SfxViewShell::Current());
if (pBase != NULL)
mpViewShell = pBase->GetMainViewShell();