touch-aware button states