I've got an application which presents a list of items (songs) to the end user. Each song is able to be selected and the selected state is represented with a checked checkbox. It looks like this:
After talking with my users for a while I have learned two things:
Users like to be able to select and de-select list items by performing a single click on the item itself rather than being forced to click only inside the checkbox area.
Users like to be able to double-click on a list item to initiate an action such as playing the song.
However, when a user double-clicks on a song it triggers two single-click events before triggering the double-click event. This causes the item's selected state to flicker. Since they clicked twice, the state has not been affected, but visually there is a bit of confusion as the UI tries to respond to the selected state changing.
The only resolution I can think of is to delay handling single-click events until enough time has elapsed that I am sure a double-click event is not going to come. That feels like bad UX to me, though.
Is it ever appropriate to delay handling a click event? Are my users wrong in thinking about how they want to use the program? How should I approach this?