focus events with gtk

From: Mike Gorse <mgorse_at_mgorse.dhs.org>
Date: Sat Nov 24 2007 - 23:00:54 CET

Hi all,

There is code in src/af/xap/unix/xap_UnixFrameImpl.cpp to handle focus_in_event
and focus_out_event signals. This code stops further processing of the signal
by gtk with a comment explaining that gtk would send a superfluous expose
event, causing a complete redraw of the window and screen flicker. This
"feature" of gtk, although perhaps poorly designed, is still present and
probably not going away. There is a post about it at
http://shallowsky.com/blog/2005/Apr/09/ which gives several possible
work-arounds.

Abiword's current work-around causes gail's handler not to see the focus
events, either, so I would like it to be delt with in some other way.

I have still-uncommitted changes which add a class, called AbiDocView, which is
derived from GtkDrawingArea with some atk functions added to expose document
text. I've modified AP_UnixFrameImpl::_createDocumentWindow to create an
AbiDocView rather than directly creating a GtkDrawingArea. I've modified the
AbiDocView class init function to set focus_in_)event and focus_out_event to
NULL. This disables the unwanted gtk code while still allowing other connected
signal handlers (eg, gail) to see the events. I don't know if this change is
sufficient; is XAP_UnixFrameImpl ever used by code other than AP_UnixFrameImpl
or intended to be?

Any comments?

Thanks,

-- Mike Gorse / AIM:linvortex / http://mgorse.freeshell.org --
Received on Sat Nov 24 23:01:16 2007

This archive was generated by hypermail 2.1.8 : Sat Nov 24 2007 - 23:01:16 CET