Hi David, I'm guessing that either X or gdk is generating a full expose when the focus changes to the viewable focus state to update. There doesn't seem to be a way to turn off this behavior. To alleviate the issue, can you connect your key actions to the top level window instead, as these will always be fired if it has the window manager focus, you can then propagate the calls to the drawing area. This is how we are dealing internally with the key events anyway as the window manager only generates the event for the window with the highlighted focus and not the child windows. This can be performed by keeping a flag to say whether or not the drawing area is focused, when you want to focus it you set the flag. There is focus_in_actions and focus_out_actions in EV_APPLICATION to keep track of the flag, if any other widget gains the focus then the flag is unset, if a click is performed on the drawing area you set the flag. Then in the top level window key events you can check whether the flag is set and then call the appropriate routines/agents for the drawing area. I think you may only need the focus in action hooked up of EV_APPLICATION. If the widget being focused is not the top level window then you can unset the flag. Hope this helps, if not I'll try and think of something else.