Originally Posted by DNSB
I was playing with Calibre and noticed that one of the book I was currently reading did not show up with the I'm_Reading tag. When I put my Glo to sleep while reading that book, it showed the cover from another book I had partially read which did have the I'm_Reading tag.
After playing with stepping through the other 4 books on the carousel and going back to Three Men in a Boat, the cover displays when the Kobo is in sleep mode and Calibre shows it as having the I'm_Reading tag.
I noticed something related earlier and your report suggested an experiment.
I opened a new book and put the device to sleep. This showed the cover of the previous book. Then I opened another new book, went back to the home screen and reopened the book. This time the correct cover was shown.
Just now, I opened another new book and connected to the PC without returning to the home screen. Like you, the book doesn't show as "Im_Reading". Checking the database, the ReadStatus is 0 (unread) but the __PercentRead has a value and the current reading position is set.
From that, I would say that what is happening is that the while the reading position is being stored as you read (or maybe triggered by the connect to PC), the ReadStatus (whether the book has been opened, finished or closed) is not set until the first time it is closed. Then the rule for selecting the sleep cover is "ReadStatus = 1 and max(DateLastRead)". That basically means the last book you opened without finishing. The few occasions I have seen the wrong cover, agree with this.
The above also explains something that speakingtohe reported in the calibre forum. After a sync all books were marked as unread (and no I haven't a clue why). When the device went to sleep after this, it didn't show a cover at all. In that case, the device wouldn't be able to find a previously opened book to use the cover on.
This is with 2.3.2. It doesn't explain everything. But, it does explain why I haven't seen the wrong cover very often.