- Replace two calls to deprecated gdk_cairo_create()
- Alleviate asymmetry between rendering pressed and released keys
by consistenly clipping the same area up front to avoid
artefacts
- make sure pressed and released keys are shown immediately by
calling gdk_window_invalidate_rect()
- improve consistency between render_(pressed|locked|released)_key
- improve code flow