? 123.diff
? docs/tools/.deps
? docs/tools/.libs
? gtk/theme-bits/.deps
? gtk/theme-bits/.libs
? gtk/xdgmime/.deps
? gtk/xdgmime/.libs
? gtk/xdgmime/libxdgmime.la
? gtk/xdgmime/xdgmime.lo
? gtk/xdgmime/xdgmimealias.lo
? gtk/xdgmime/xdgmimecache.lo
? gtk/xdgmime/xdgmimeglob.lo
? gtk/xdgmime/xdgmimeint.lo
? gtk/xdgmime/xdgmimemagic.lo
? gtk/xdgmime/xdgmimeparent.lo
? modules/engines/ms-windows/.deps
? perf/.deps
? perf/.libs
? tests/floatingtest
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gtk+/ChangeLog,v
retrieving revision 1.7010.2.326
diff -u -p -r1.7010.2.326 ChangeLog
--- ChangeLog	22 Mar 2006 18:50:53 -0000	1.7010.2.326
+++ ChangeLog	24 Mar 2006 07:26:52 -0000
@@ -1,3 +1,11 @@
+2006-03-24  Lin Ma  <lin.ma@sun.com>
+
+	* modules/input/gtkimcontextxim.c: Add a modifiers filter to 
+	gtkimcontextxim.c
+	(gtk_im_context_xim_filter_keypress): Gtk accelerator key event
+	can't be passed to other widgets properly when GTK_IM_MODULE=xim.
+	(#335796, Lin Ma)
+
 2006-03-22  Matthias Clasen  <mclasen@redhat.com>
 
 	* gtk/gtktreeview.c (gtk_tree_view_bin_expose): Use fg_gc to
Index: modules/input/gtkimcontextxim.c
===================================================================
RCS file: /cvs/gnome/gtk+/modules/input/gtkimcontextxim.c,v
retrieving revision 1.53
diff -u -p -r1.53 gtkimcontextxim.c
--- modules/input/gtkimcontextxim.c	30 Jun 2005 18:42:44 -0000	1.53
+++ modules/input/gtkimcontextxim.c	24 Mar 2006 07:26:53 -0000
@@ -756,6 +756,17 @@ gtk_im_context_xim_filter_keypress (GtkI
 
       buffer[num_bytes] = '\0';
 
+      /* If the buffer is good enough to be insert to other widgets,
+       * we will detect the modifiers state and decide whether to discard
+       * this buffer, before things become worse.
+       *
+       * Maybe this fix can't work on some platforms. Need be confirmed.
+       *
+       */
+      if (event->state &
+         (gtk_accelerator_get_default_mod_mask () & ~GDK_SHIFT_MASK))
+         return FALSE;
+
       result_utf8 = mb_to_utf8 (context_xim, buffer);
       if (result_utf8)
 	{
