emacs-bidi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [emacs-bidi] Control-key binding while typing (for example) Hebrew


From: Amit Aronovitch
Subject: Re: [emacs-bidi] Control-key binding while typing (for example) Hebrew
Date: Mon, 28 Jun 2010 09:31:49 +0300


On Sun, Jun 27, 2010 at 10:55 PM, Amit Ramon <address@hidden> wrote:
Eli Zaretskii <address@hidden> [2010-06-26 19:55 +0300]:


Could you and Larry please look for an option of the X keyboard driver
to leave the Ctrl- and Alt-modified keys untranslated?  This would
eliminate at least some of the issue.  At least with commands like
incremental search, it would be very inconvenient to have to switch
the language between C-s and the string, especially since switching
the language could produce an input event on some platforms, which
will exit the I-search.

I started to look at it. So far it seems that under X it is (at least
to some extent) the responsibility of an application to take care of
handling modified keys. I'll try to look further into it, and will
post here any findings. Perhaps this is a question to the Emacs
developers.


Just to avoid duplication of threads, I should mention that my conclusion (also not final) was the same:

On Sun, Jun 27, 2010 at 6:30 AM, Amit Aronovitch <address@hidden> wrote:
From a brief check, on Linux with X,  with Hebrew and English layouts, situation seems to be like that:

1) On the basic X level (I used xev to test) there is a "state" (binary flags, indicate e.g. if ctrl was held, and also the "group" i.e. if we are in Hebrew or English mode), keycode (a number, which is the same for "א" and "t"), and an "XLookupString" which is the same (14) for both "ctrl-t" and "ctrl-א" (but does differentiate between them if ctrl is not held). xev  also reports "keysym" which is the unicode point for "t" in both cases (ctrl-t and ctrl-א), but is the unicode point for א if control is not pressed.
2) In gtk (a higher level interface), there is "gdk_keyval_name", which is either "א" or "t" according to the current layout (language mode). Whether or not ctrl was down is determined by the mask GDK_CONTROL_MASK in the state of the event.

 Note that at both levels there is no specific code for "ctrl-א". Whatever it is that emacs sees is either generated by some higher level function that I am not aware of, or generated within emacs itself. Probably we should look it up in the code.
 
This should probably appear in the gtk- or X- specific parts of emacs. Allocating a few free hours for diving into unfamiliar code might take a few weeks in my case, so I'll be happy if someone else does that in the meantime.

   (the other) Amit


reply via email to

[Prev in Thread] Current Thread [Next in Thread]