Jan> Jan> I suspect that for some reason compose_status is not right, around
   Jan> line 6276 there is a break that in effect ignores key presses.

Good guess. It seems as if the data in compose_status wont be changed when
I press e.g. an arrow key. Therefore if I try to press an arrow key right
after finishing a compose sequence compose_status.chars_matched is still set
to 3. Thus the if statement, you pointed me to, will be executed:

         if (compose_status.chars_matched > 0 && nbytes == 0)
           break;

It works, if I reset compose_status, once a compose sequence is complete,
i.e. if I change the line above to (not very nice, I know, since it uses the
internals of compose_status):


Does this patch work?

Index: xterm.c
*** xterm.c.~1.867.~    2005-06-13 17:46:19.000000000 +0200
--- xterm.c     2005-06-13 17:43:14.000000000 +0200
***************
*** 6281,6286 ****
--- 6281,6287 ----
           if (compose_status.chars_matched > 0 && nbytes == 0)
             break;

+           bzero (&compose_status, sizeof (compose_status));
           orig_keysym = keysym;

         /* Common for all keysym input events.  */

   Jan D.



_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to