diff options
Diffstat (limited to 'sd/source/ui')
-rw-r--r-- | sd/source/ui/app/sdmod.cxx | 12 | ||||
-rw-r--r-- | sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx | 22 | ||||
-rw-r--r-- | sd/source/ui/slidesorter/controller/SlsSlotManager.cxx | 8 | ||||
-rw-r--r-- | sd/source/ui/table/TableDesignPane.cxx | 4 | ||||
-rw-r--r-- | sd/source/ui/toolpanel/LayoutMenu.cxx | 9 |
5 files changed, 31 insertions, 24 deletions
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/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..e8ebc7fc605d 100644 --- a/sd/source/ui/toolpanel/LayoutMenu.cxx +++ b/sd/source/ui/toolpanel/LayoutMenu.cxx @@ -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 |