I have a keypad/LCD screen that I put both debounce code into it for the usual reasons. I also put a millis count so that I could not double enter the same button.
Pseudo code:
Check for button press twice for debounce
if good button press, use it,
if a new button press check millis
if (millis - last button press) == long enough time
record new button press
The downside is you can push a button too quickly and have it ignored depending how you set the "long enough time variable.