Basically I have a hildon.Button (also tried with plain gtk.Button) and I want to change the background color between red and green based on state changes. 1. Put the whole button inside eventbox and change eventbox background (the "official" GTK workaround to the fact that buttons do not generally allow background to be messed with), does "nothing" (ie the button with the default background and all is drawn on top of the eb). 2. Put the first child of the hildon.Button (gtk.Alignment) inside the eventbox: makes ugly mess where there is rectangular box inside the button area with the gray button borders visible, click only works if done in the gray border (i guess the eventbox could be connected to the signals as well, but since this looks fugly I didn't bother experimenting with that).