Bug 515078 - RCP: External Key Combination does not accept certain base keys
Summary: RCP: External Key Combination does not accept certain base keys
Status: RESOLVED WONTFIX
Alias: None
Product: Jubula (Archived)
Classification: Technology
Component: RC (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal with 1 vote (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Elena Pister CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-11 03:47 EDT by Nobody - feel free to take it CLA
Modified: 2017-07-14 02:51 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nobody - feel free to take it CLA 2017-04-11 03:47:42 EDT
When using External Key Combination with an RCP AUT, certain base keys are not being recognized / handled correctly. When e. g. using "COMMA" as a base key and shift as modifier, a capital "C" is being output instead of a semicolon ";" (at least that's what should happen when using the german keyboard layout).
Comment 1 Nobody - feel free to take it CLA 2017-04-19 03:44:50 EDT
Actually, this problem only occurs when using Key Combination. External Key Combination on the other hand behaves correctly. Since using External Key Combination is a workaround for this bug, I will no longer work on this for now.
Comment 2 Miklos Hartmann CLA 2017-07-14 02:51:37 EDT
I think the fact that SWT / RCP is not working is more a lacking feature than a bug (this is also mentioned in the manual, though I think a bit incorrectly: https://testing.bredex.de/files/content/software/documentation/reference/actions/ch05s01s02s01.html )

The main reason I think is that the SWT class contains the key codes only for the non-typeable keys (e.g. F1 - F12, etc), and we create the SWT Key Events using these codes. Probably we could do something similar for the other keys, but I'm not sure that would really worth the huge amount of work now.

In general, External Key Combination / External Input Text should work (corresponding methods: AbstractApplicationTester.rcNativeKeystroke / InputText). These actions use the AWT Robot to generate AWT Events and execute the keypresses / releases. The 'internal' actions use the toolkit-specific robots to generate toolkit-specific events. I think one should use the External actions except if it is important to generate the toolkit-specific events.

There's also another twist to the story, because the (External) Input Text actions sometimes accept non-alphanumeric characters, and sometimes don't...

I'm going to set the ticket Wontfix now, because I think improving the keytyping code would require considerable effort, and since the External actions seem to be working for most cases.