summaryrefslogtreecommitdiff
path: root/sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx')
-rw-r--r--sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx22
1 files changed, 5 insertions, 17 deletions
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());
}
}