JDK-6496596 : On Solarisx86 and RHEL4U4, no KEY_PRESSED event received when dead key on German keyboard is pressed
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt:i18n
  • Affected Version: 5.0u9
  • Priority: P2
  • Status: Closed
  • Resolution: Not an Issue
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2006-11-22
  • Updated: 2011-01-27
  • Resolved: 2009-05-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7Resolved
Related Reports
Relates :  
Description
see comments for details

Comments
EVALUATION Per the reason in the above evaluation, I am closing this bug as not a bug.
05-05-2009

EVALUATION >but the questions is >Why the normal key that has been typed followed dead key doesn't has >KEYPRESS as well? That's reasonable to me. It consumes the following KEYPRESS of 'a' and generates KEYTYPED for 'a' with accent. Anyway, JDK is just following the XFilterEvent() specification. If you don't agree with this, this CR needs to be transfered to the Solaris team.
19-10-2007

EVALUATION The reason for no KEY_PRESSED event being generated for a dead key is that the underlying input method (in this case German keyboard) is consuming the event. More specifically, XFilterEvent() call returns True, which means (from its man page): If XFilterEvent returns True, then some input method has filtered the event, and the client should discard the event. I think this behavior is intact since ever I know, and seems to be the correct behavior since it's a "dead" key. Not only German but all the input methods for any language, e.g., Chinese/Japanese/Korean do not produce KEY_PRESSED events for consumed XKeyEvents.
25-09-2007

EVALUATION Previously, I did not change the keyboard layout. Using Solaris 10 on x86 (jcg-x86-14), I've modified /etc/X11/xorg.conf "XkbLayout" from "us" to "de". Restarted the system. Using Java7 latest promoted build (b03), I was able to type the following: 1. "`" (which appears as "^") + a = small "a" with circumflex 2. same + o = small "o" with circumflex 3. same + e = small "e" with circumflex Here is the output from the test application: KEY_RELEASED; jcode:0x82; keytext:Zirkumflex (Dead); keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar:\303\242 (e2);modifrs:; loc:UNKNOWN; KEY_RELEASED; jcode:0x41; keytext:A; keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_RELEASED; jcode:0x82; keytext:Zirkumflex (Dead); keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar:\303\242 (e2);modifrs:; loc:UNKNOWN; KEY_RELEASED; jcode:0x41; keytext:A; keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_PRESSED; jcode:0xa; keytext:Eingabe; keychar: (a);modifrs:; loc:STANDARD; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar: (a);modifrs:; loc:UNKNOWN; KEY_RELEASED; jcode:0xa; keytext:Eingabe; keychar: (a);modifrs:; loc:STANDARD; KEY_RELEASED; jcode:0x82; keytext:Zirkumflex (Dead); keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar:\303\264 (f4);modifrs:; loc:UNKNOWN; KEY_RELEASED; jcode:0x4f; keytext:O; keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_PRESSED; jcode:0xa; keytext:Eingabe; keychar: (a);modifrs:; loc:STANDARD; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar: (a);modifrs:; loc:UNKNOWN; KEY_RELEASED; jcode:0xa; keytext:Eingabe; keychar: (a);modifrs:; loc:STANDARD; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar:\303\252 (ea);modifrs:; loc:UNKNOWN; KEY_RELEASED; jcode:0x82; keytext:Zirkumflex (Dead); keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; KEY_RELEASED; jcode:0x45; keytext:E; keychar:\357\277\277 (ffff);modifrs:; loc:STANDARD; Build: JDK7 b03 OS: Solaris 10 3/05 s10_74L2 X86 Locale: de_DE.UTF8 ........... Request to the submitter: Could you please try with JDK7 build to see if it works for you as well? Thanks.
01-12-2006

EVALUATION I am not able to reproduce the problem with Java6 b105 as wella s Java7. Here is what I did: 1. java JavaKeyTester 2. Ctrl+Space to enable input method 3. Type '^' + 'a' to produce small letter 'a' with circumflex 4. Type ''' + 'a' to produce small letter 'a' with acute Output of the test: KEY_PRESSED; jcode:0x11; keytext:Strg; keychar:\777 (ffff);modifrs:Strg; loc:LEFT; KEY_PRESSED; jcode:0x10; keytext:Umschalt; keychar:\777 (ffff);modifrs:Umschalt; loc:LEFT; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar:�� (e2);modifrs:; loc:UNKNOWN; KEY_TYPED; jcode:0x0; keytext:Unknown keyCode: 0x0; keychar:�� (e1);modifrs:; loc:UNKNOWN; Locale:de_DE.UTF-8 OS: Solaris 10 6/06 s10s_u2wos_09a SPARC Request to the submitter: Could you please let me know if the problem still exists on the latest Java6 build? Thanks.
01-12-2006

EVALUATION Could the submitter please provide a test case? Also please clarify what the "Input manager" is.
24-11-2006

WORK AROUND if want to see the correct charactor with accents appear, you have to pressed the dead key and char key twice. for example, dead key + char 'a' + char 'a'
22-11-2006