From 9b5e8aaf8386106ccd74d6309dc1abb3427ae76c Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Fri, 2 Jan 2015 15:45:59 +0100 Subject: [PATCH] Repair buggy BringToFront --- internal/model/queue.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/model/queue.go b/internal/model/queue.go index b2d7b1f87..a4f34dabf 100644 --- a/internal/model/queue.go +++ b/internal/model/queue.go @@ -53,9 +53,15 @@ func (q *jobQueue) BringToFront(filename string) { q.mut.Lock() defer q.mut.Unlock() - for i := range q.queued { - if q.queued[i] == filename { - q.queued[0], q.queued[i] = q.queued[i], q.queued[0] + for i, cur := range q.queued { + if cur == filename { + if i > 0 { + // Shift the elements before the selected element one step to + // the right, overwriting the selected element + copy(q.queued[1:i+1], q.queued[0:]) + // Put the selected element at the front + q.queued[0] = cur + } return } }