| Other |
|---|
| tbdUnresolved |
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
|
|
Relates :
|
To reproduce, compile and run the example below
- press enter in the combo's textField
- expected: log message printed
- actual: nothing printed
This is a regression of JDK-8145515, probably (don't have an intermediate version handy to verify) introduced by fixing JDK-8149622.
Both fixes reside in ComboBoxPopupControl.handleKeyEvent. The fixing idea (afaiu) of the former was to fire a not consumed enter onto the textField (and prevent back-fireing by a custom flag on the textField properties). After fixing the latter, an uncomsumed enter is only fired for eventType keyReleased.
The example:
public class TextFieldInComboBug extends Application {
private Parent createContent() {
ComboBox<String> comboBox = new ComboBox<>();
comboBox.setEditable(true);
comboBox.getItems().addAll("something to choose", "another thingy to have");
// regression of https://bugs.openjdk.java.net/browse/JDK-8145515
// ENTER not received
comboBox.getEditor().addEventFilter(KeyEvent.KEY_PRESSED, e -> {
LOG.info("got key in editor filter: " + e);
});
VBox content = new VBox(10, comboBox);
return content;
}
@Override
public void start(Stage stage) throws Exception {
stage.setScene(new Scene(createContent()));
//stage.setTitle(FXUtils.version());
stage.show();
}
public static void main(String[] args) {
launch(args);
}
@SuppressWarnings("unused")
private static final Logger LOG = Logger
.getLogger(TextFieldInComboBug.class.getName());
}