nsWindow.cpp incorrectly processes Window's events

VERIFIED FIXED in M5

Status

()

Core
Event Handling
P1
normal
VERIFIED FIXED
19 years ago
18 years ago

People

(Reporter: tague, Assigned: rods (gone))

Tracking

Trunk
x86
Windows NT
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

19 years ago
The Viewer application's event look (nsWinMain.cpp, nsNativeViewerApp::Run())
handles Window's messages incorrectly.  Viewer tries to handle keyboard events
prior to calling TranslateMessage, this prevents Input Methods from ever seeing
any keyboard events and sending the appropriate Messages to the application.

Input Methods have to have a chance at keyboard events (by calling
TranslateMessage) prior to all other keyboard processing.

Updated

19 years ago
Assignee: rickg → joki
Component: Viewer App → Event Handling
Priority: P3 → P1
Target Milestone: M3

Comment 1

19 years ago
Putting on M3 radar whilst eng checks this out.  Moving to Events Handling
component.

Updated

19 years ago
QA Contact: 3853 → 3847

Comment 2

19 years ago
Setting QA Contact to janc

Updated

19 years ago
Target Milestone: M3 → M5
(Reporter)

Updated

18 years ago
Target Milestone: M5 → M4
(Reporter)

Comment 3

18 years ago
Tom :-

Per our hallway conversations, If you don't consider this your bug, please
comment and reassign.

thanks.
(Reporter)

Updated

18 years ago
Assignee: joki → rods
Summary: Viewer incorrectly processes Window's events → nsWindow.cpp incorrectly processes Window's events
(Reporter)

Comment 4

18 years ago
(1) Changed Summary of Bug
(2) changing owner from joki@netscape.com to rods@netscape.com per email from
Peter Trudelle

(3) More detailed information:
The bug with keyboard event processing in in the Window's Message Handler,
where it handles WM_KEYUP and WM_KEYDOWN events.  Normally, in a windows
application keyboard input is handled as WM_CHAR events or WM_IME_*COMPOSITION
messages - depending on if inline input is supported or not.

Right now the message handler for nsWindow.cpp is attempting to process key
events on the WM_KEY* messages and convert them into character events.  This
prevents international keyboards and input methods from working correctly.

When an input method is engaged, the WM_KEY* messages have to be given to the
DefWindowProc, so that the operating system can translate them into input
method messages.  Because nsWindow.cpp traps the WM_KEY* events, input methods
do not work properly.

Please contact me if you need more information about fixing this bug.
(Assignee)

Updated

18 years ago
Status: NEW → ASSIGNED

Comment 5

18 years ago
Is this is really only a Viewer bug? If so, shouldn't it be reassigned to someone
in Gecko?

Updated

18 years ago
Target Milestone: M4 → M5

Comment 6

18 years ago
This is not a viewer-only bug.  Tague's early work was done on viewer because
Ender wasn't incorporated into apprunner at that time.  Tague is now doing his
work on apprunner, but the bug still applies to apprunner.

Didn't make it for M4.  Need this for M5 ASAP.

Comment 7

18 years ago
Cross reference to related bug:
    http://bugzilla.mozilla.org/show_bug.cgi?id=3864
(Assignee)

Updated

18 years ago
Status: ASSIGNED → RESOLVED
Last Resolved: 18 years ago
Resolution: --- → FIXED
(Assignee)

Comment 8

18 years ago
I didn't do anything with the IME code, but nsWindow (on Windows) is now
handling the WM_CHAR event.
(Reporter)

Updated

18 years ago
Status: RESOLVED → VERIFIED
(Reporter)

Comment 9

18 years ago
fixed as part of large keyboard whackage.  marking verified.
You need to log in before you can comment on or make changes to this bug.