PR# 19754 Keyboard events do not distinguish between '#' and '£'
Problem Report Summary
Submitter: HowardThomsonSurrey
Category: EiffelVision
Priority: Low
Date: 2021/05/16
Class: Bug
Severity: Non-critical
Number: 19754
Release: 20.11
Confidential: No
Status: Open
Responsible:
Environment: linux Ubuntu 18.04.5 LTS (Bionic Beaver) 64-bit
Synopsis: Keyboard events do not distinguish between '#' and '£'
Description
For my British (!) Linux system running Ubuntu Linux instances of EV_KEY do not distinguish between the key codes for the the keys that have key caps for '#' and '£'. The key on my keyboard that has '#' and '~' generates keycode 4 and the text "3" without the Shift key, keycode 56 and text "3" with Shift !!! The key that has '3' and '£' on it generates keycode 4 and the text "3" without the Shift key, and fails to generate and event at all with Shift !! The key that has '`' [back-quote] and '¬' on it generates keycode 56 without shift with text '`', and fails to generate an event with Shift ... The key that has '2' and ' " ' on it generates key code 3 and text "2" without shitf, and keycode 55 text '@' with shift I am not entirely surprised at some level of confusion in generating '@' '#' '£' and '"' I am surprised and frustrated that not all keys, with no-Shift / Shift on my keyboard generate a key event !
To Reproduce
I will attempt to provide a minimal EiffelVision program to demonstrate this issue. I don't know how one can inject all possible keycodes into the GTK system to elicit EV_KEY responses, so my demo will rely on actual key presses ...
Problem Report Interactions
It would seem that key_press_string_actions does produce a string that correctly corresponds to key caps ...
# Key event: 4 : 3 ~ Key event: 56 : ` ' Key event: 55 : ' @ Key event: 3 : 2 3 Key event: 4 : 3 £ No event !!! 2 Key event: 3 : 2 " Key event: 55 : ' ` Key event: 56 : ` ¬ No event !!! The above are the EV_KEY keyboard events for which I have issues. The leftmost character is the keycap on my physical keyboard Followed by EV_KEY.code.out [if the event is generated !] Lastly the EV_KEY.text ...