README file of gtk-matsu-981109.patch.gz
This patch fixes some problems which make appliction freeze related with XIM,
and make application be tolerant to the termination of input method.
This patch is diff from gtk+-1.1.3.
Takashi Matsuda <
[email protected]>
Akira Higuchi <
[email protected]>
Changes:
gdk/gdktypes.h:
* Add new enum GdkICAttriburesType, and new struct GdkICAttr.
gdk/gdk.c:gdk_ic_new(), gdk_ic_set_attr (), gdk_ic_get_attr ()
* Changes API from VaList based to Attribute structure based.
Now gtk application may not clash when input method dies !!
gdk/gdk.c:gdk_ic_{set|get}_values()
* removed.
gdk/gdk.c:gdk_event_get ()
* Fix freeze related with redireciton of XFilterEvent.
gdk/gdk.c:gdk_event_translate ()
* Suppress the "lookup reeveals NULL" message related with XIM.
* Ignores the FocusIn/FocusOut event of which mode is Notify{Grab|Ungrab}
for avoid to confuse ICFocus.
gtk/gtkeditable.h:
* Add new member ic_attr.
gtk/gtkeditable.c: gtk_editable_finalize ()
* remove this method. gdk_ic_destroy () must be called in more
intimate widget, which knows the client_window and destroys ic exactly
before client_window.
gtk/{gtkentry.c|gtktext.c}:gtk_*_unrealize ()
* call gdk_ic_destroy in this method.
gtk/gtkentry.c:gtk_entry_draw_cursor_on_drawable ()
* Check if widget has focus for cope with some IM.
With this im, setting attributes to ic which does not have ic_focus caused
problem.
gtk/gtkwidget.c:gtk_wiget_real_unrealize()
* Unrealize child widget before parent.
KNOWN BUG:
* If input method dies during processing XFilterEvent, it seems there is
no way to prevent a application clashing.
* If input method is not running when gtkeditable or it's descendant is
realized, that widget can't use XIM. If you want to use XIM, you must
destroy the widget and re-create it (e.g. close the window and open again).
* If different IM starts and it's capability (i.e. supported style,
required filter_events, etc) is differ than previous IM, result is
unpredictable.