diff options
Diffstat (limited to 'sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx')
-rw-r--r-- | sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx | 22 |
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()); } } |