by Michael S. Kaplan, published on 2006/03/28 03:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/03/28/561725.aspx
Regular reader Ivan Petrov asked the following in the Suggestion Box:
I've the following problem:
In MSKLC in the 'Control state' of the keyboard (when the Control key is pressed) I'm trying to make VK_OEM_3 a Dead Key. So, I assign to it 'U+0060 (') GRAVE ACCENT' and then I set it as Dead key. To this point everythig goes ok! Then I go into the Dead key dialog box. And here is the BIG problem. What I mean:
I want to do the following:
When I press "Ctrl" + "`" followed by one of this vowels in the Bulgarian alphabet:
"а", "е", "и", "о", "у", "ъ", "ю" and "я",
the keyboard layout to produce one of this results:
а̀ (0430 + 0300)
ѐ 0450 or (0435 + 0300)
ѝ 045d or (0438 + 0300)
о̀ (043e + 0300)
у̀ (0443 + 0300)
ъ̀ (044a + 0300)
ю̀ (044e + 0300)
я̀ (044f + 0300)
And finally the problem:
Let's take for example the first vowel "а":
In the Ded Key dialog box in the Base (code point) field I type "а". Then in the Composite (code point) field I type "U+0430 U+0300" and then MSKLC says that "The value must be either a single character or code point." So, this is the problem!
Can you help, how to deal with this.
I've no problem with the two precomposed letters "ѐ" and "ѝ", but the rest ... ;-(
Thank you in advance.
Hmmm.... maybe Ivan was not reading often enough. :-(
The problem that he is reporting on has no solution. As I pointed out back in December of 2004 when I mentioned that Dead keys are not intuitive, and then a few times since then -- the end result of a dead key transaction must be s single UTF-16 code unit.
This is also explained in the MSKLC help file, as is the explanation that the dead key architecture is one that is around for legacy purposes only, and not generally for the creation of new keyboards.
Even if this ever were changed in a future release of Windows, it could not be used on existing versions due to the backcompat break that this would cause -- and the future version of MSKLC would have to support different keyboard layout DLLs for different versions of Windows. Which as I am sure people can imagine is not a terribly popular plan....
For solutions, there are two obvious ones:
Either of these plans will allow the characters to be supported....
This post brought to you by "у" (U+0443, a.k.a. CYRILLIC SMALL LETTER U)
# Ivan Petrov on 28 Mar 2006 4:42 AM:
# Ivan Petrov on 9 Apr 2006 8:37 AM:
# Michael S. Kaplan on 9 Apr 2006 9:47 AM:
# Ivan Petrov on 9 Apr 2006 10:23 AM:
# Michael S. Kaplan on 9 Apr 2006 11:01 AM:
go to newer or older post, or back to index or month or day