[Mono-bugs] [Bug 427039] New: Need a low-level keystroke filter

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Sep 17 13:26:15 EDT 2008


           Summary: Need a low-level keystroke filter
           Product: Mono: Class Libraries
           Version: SVN
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: Enhancement
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: mgorse at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---

The UIA-to-ATK bridge needs to pass events to atk when keys are pressed or
released so that a11y programs such as Orca can know when keys are pressed and
potentially intercept them.  I cannot use a MessageFilter or PreviewKeyDown
handler, as they are currently implemented, for a few reasons:

- Mono tries to behave like Windows when caps lock or num lock are pressed. 
Rather than wait for the key to be released, Windows sends a WM_KEYUP
immediately following the WM_KEYDOWN, so it is impossible for an application to
determine whether caps lock is still depressed by listening for messages alone.
 Orca uses caps lock as a modifier key when the laptop keyboard layout is
selected, so it needs to know if the key is being held down.

- Atk wants the X11 keysym for a key along with a string with a representation
of the character that would correspond to the key.  X11Keyboard.cs has a
function called ToUnicode, which is used by TranslateMessage, but it is not
currently used anywhere else or publicly accessible (since it is in a
X11-specific file).

See bug 418524 for more details.

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.

More information about the mono-bugs mailing list