EVALUATION
Bug was introduced with a fix to 4623376,4737679,4501485,4740906,4708221 (4173679/4122715) in awt_Component.cpp. We should apply this fix to navigation keys only thus restoring AltGr functionality.
|
|
|
EVALUATION
Under Windows 2000 it's reproducible with Swing and pure AWT alike.
On a Linux part a separate bug filed as they seems unrelated.
|
|
|
WORK AROUND
Alt-Gr (in my case right Alt) Shift ['|' '\'] + Shift-Q
types the expected character
|
|
|
EVALUATION
On my keyboard '|' is upper register. The low register for this keyboard key is '\'.
Let me call this keyboard key - ['|' '\']
Alt-Gr (in my case right Alt) Shift ['|' '\'] + Shift-Q
types the expected character
Alt-Gr ['|' '\'] + Shift-Q
does not type it
windows applications type ?? in both cases.
Reassigning to awt for the investigation.
|
|
|
EVALUATION
Could you run this test case?
-- JEP.java (from bugId 5084236)
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class JEP {
public static void main(String args[]) {
JEditorPane pane = new JEditorPane();
// pane.enableInputMethods(false);
JFrame f = new JFrame();
f.addWindowListener (new WindowAdapter () {
public void windowClosing (WindowEvent evt) {
System.exit(0);
}
});
f.getContentPane().add(pane);
f.setSize(500, 500);
f.setVisible(true);
// Key listener that debugs the key events
// being sent to the pane
pane.addKeyListener(
new KeyListener() {
public void keyPressed(KeyEvent e) {
debugKeyEvent(e);
}
public void keyReleased(KeyEvent e) {
debugKeyEvent(e);
}
public void keyTyped(KeyEvent e) {
debugKeyEvent(e);
}
}
);
pane.addMouseListener(
new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
debugMouseEvent(e);
}
public void mousePressed(MouseEvent e) {
debugMouseEvent(e);
}
public void mouseReleased(MouseEvent e) {
debugMouseEvent(e);
}
}
);
}
private static void debugKeyEvent(KeyEvent e) {
System.err.println(e);
System.err.println("--------------------------------------------------------------------------------");
}
private static void debugMouseEvent(MouseEvent e) {
System.err.println(e);
// Append BUTTONx modifiers
int modifiers = e.getModifiers();
StringBuffer sb = new StringBuffer();
if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {
sb.append("BUTTON1_MASK");
}
if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {
if (sb.length() > 0) {
sb.append(" | ");
}
sb.append("BUTTON2_MASK");
}
if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
if (sb.length() > 0) {
sb.append(" | ");
}
sb.append("BUTTON3_MASK");
}
System.err.println("Button masks: " + sb.toString());
// Append SwingUtilities.isXXXButton() results:
System.err.println("SwingUtilities.isLeftMouseButton()=" + SwingUtilities.isLeftMouseButton(e));
System.err.println("SwingUtilities.isMiddleMouseButton()=" + SwingUtilities.isMiddleMouseButton(e));
System.err.println("SwingUtilities.isRightMouseButton()=" + SwingUtilities.isRightMouseButton(e));
System.err.println("--------------------------------------------------------------------------------");
}
}
---------- END SOURCE ----------
If the problem is reproducible can I have the debug output?
|
|
|