Skip to content

Commit fed185a

Browse files
Merge
2 parents 592d745 + 9df20c5 commit fed185a

File tree

5 files changed

+252
-12
lines changed

5 files changed

+252
-12
lines changed

doc-files/release-notes-12.md

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Release Notes for JavaFX 12
2+
3+
## Introduction
4+
5+
The following notes describe important changes and information about this release.
6+
7+
As of JDK 11 the JavaFX modules are delivered separately from the JDK. These release notes cover the standalone JavaFX 12 release. JavaFX 12 requires JDK 11.
8+
9+
## List of Fixed Bugs
10+
11+
Issue key|Summary|Subcomponent
12+
---------|-------|------------
13+
[JDK-8152395](https://bugs.openjdk.java.net/browse/JDK-8152395)|[ToolBar] Overflow button of ToolBar doesn't appear when the size of the items increases|controls
14+
[JDK-8212102](https://bugs.openjdk.java.net/browse/JDK-8212102)|[TextField] IOOBE on paste/replace text with control characters|controls
15+
[JDK-8217270](https://bugs.openjdk.java.net/browse/JDK-8217270)|Broken link to cssref.html in javafx.controls package docs|controls
16+
[JDK-8167068](https://bugs.openjdk.java.net/browse/JDK-8167068)|GLS language errors|graphics
17+
[JDK-8188810](https://bugs.openjdk.java.net/browse/JDK-8188810)|Fonts are blurry on Ubuntu 16.04 and Debian 9|graphics
18+
[JDK-8203884](https://bugs.openjdk.java.net/browse/JDK-8203884)|Update libjpeg to version 9c|graphics
19+
[JDK-8207839](https://bugs.openjdk.java.net/browse/JDK-8207839)|[win] Negative glyph_id causes ArrayIndexOutOfBoundsException|graphics
20+
[JDK-8209764](https://bugs.openjdk.java.net/browse/JDK-8209764)|JavaFX/Monocle - Partial Screen Capture Broken|graphics
21+
[JDK-8209791](https://bugs.openjdk.java.net/browse/JDK-8209791)|OpenJFX build fails in PrismPrint.c due to missing JNICALL|graphics
22+
[JDK-8209968](https://bugs.openjdk.java.net/browse/JDK-8209968)|Image size sometimes off by 1 when scaling down images with preserveRatio true|graphics
23+
[JDK-8209969](https://bugs.openjdk.java.net/browse/JDK-8209969)|Monocle setBounds issue (width/height mixed)|graphics
24+
[JDK-8210219](https://bugs.openjdk.java.net/browse/JDK-8210219)|GlassClipboard.cpp fails to compile with newer versions of VS2017|graphics
25+
[JDK-8210386](https://bugs.openjdk.java.net/browse/JDK-8210386)|Clipping problems with complex affine transforms: negative scaling factors or small scaling factors|graphics
26+
[JDK-8212115](https://bugs.openjdk.java.net/browse/JDK-8212115)|Typo in javadoc for javafx.stage.Window|graphics
27+
[JDK-8214035](https://bugs.openjdk.java.net/browse/JDK-8214035)|Unable to render cmyk jpeg image|graphics
28+
[JDK-8214397](https://bugs.openjdk.java.net/browse/JDK-8214397)|Provide fallback to tmpdir if user home is not writable for native libs|graphics
29+
[JDK-8214185](https://bugs.openjdk.java.net/browse/JDK-8214185)|Upgrade GStreamer to the latest (1.14.4) version|media
30+
[JDK-8183399](https://bugs.openjdk.java.net/browse/JDK-8183399)|[macOSX] Scroll events finish with invalid delta values|other
31+
[JDK-8189926](https://bugs.openjdk.java.net/browse/JDK-8189926)|[Mac] Pulse timer should pause when idle|other
32+
[JDK-8211014](https://bugs.openjdk.java.net/browse/JDK-8211014)|Fix mistakes in FX API docs|other
33+
[JDK-8205092](https://bugs.openjdk.java.net/browse/JDK-8205092)|NullPointerException in PickResultChooser.processOffer when using viewOrder|scenegraph
34+
[JDK-8207837](https://bugs.openjdk.java.net/browse/JDK-8207837)|Indeterminate ProgressBar does not animate if content is added after scene is set on window|scenegraph
35+
[JDK-8216377](https://bugs.openjdk.java.net/browse/JDK-8216377)|JavaFX: memoryleak for initial nodes of Window|scenegraph
36+
[JDK-8210092](https://bugs.openjdk.java.net/browse/JDK-8210092)|Remove old javafx.swing implementation|swing
37+
[JDK-8207159](https://bugs.openjdk.java.net/browse/JDK-8207159)|Update ICU to version 62.1|web
38+
[JDK-8209457](https://bugs.openjdk.java.net/browse/JDK-8209457)|[WebView] Canvas.toDataURL with image/jpeg MIME type fails|web
39+
[JDK-8210218](https://bugs.openjdk.java.net/browse/JDK-8210218)|WebKit build fails with newer versions of VS 2017|web
40+
[JDK-8211399](https://bugs.openjdk.java.net/browse/JDK-8211399)|libxslt fails to build with glibc 2.26|web
41+
[JDK-8211454](https://bugs.openjdk.java.net/browse/JDK-8211454)|Update SQLite to version 3.26.0|web
42+
[JDK-8213541](https://bugs.openjdk.java.net/browse/JDK-8213541)|WebView does not handle HTTP response without ContentType|web
43+
[JDK-8213806](https://bugs.openjdk.java.net/browse/JDK-8213806)|WebView - JVM crashes for given HTML|web
44+
[JDK-8214119](https://bugs.openjdk.java.net/browse/JDK-8214119)|Update to 607.1 version of WebKit|web
45+
[JDK-8214452](https://bugs.openjdk.java.net/browse/JDK-8214452)|Update libxml2 to version 2.9.9|web
46+
[JDK-8215702](https://bugs.openjdk.java.net/browse/JDK-8215702)|SVG gradients are not rendered|web
47+
[JDK-8215799](https://bugs.openjdk.java.net/browse/JDK-8215799)|Complex text is not rendered by webkit on Windows|web
48+
[JDK-8216470](https://bugs.openjdk.java.net/browse/JDK-8216470)|Some methods of System.Logger are unimplemented in PlatformLogger|web
49+
[JDK-8218611](https://bugs.openjdk.java.net/browse/JDK-8218611)|[DRT] fast/xslt tests fails with Unsupported encoding windows-1251|web
50+
[JDK-8210411](https://bugs.openjdk.java.net/browse/JDK-8210411)|JavaFX crashes on Ubuntu 18.04 with Wayland|window-toolkit
51+
[JDK-8211280](https://bugs.openjdk.java.net/browse/JDK-8211280)|JavaFX build fails on Linux with gcc8|window-toolkit
52+
[JDK-8211304](https://bugs.openjdk.java.net/browse/JDK-8211304)|[macOS] Crash on focus loss from dialog on macOS 10.14 Mojave|window-toolkit
53+
[JDK-8218424](https://bugs.openjdk.java.net/browse/JDK-8218424)|[macOSX] mousewheel scrolling slow|window-toolkit
54+
55+
56+
## List of Enhancements
57+
58+
Issue key|Summary|Subcomponent
59+
---------|-------|------------
60+
[JDK-8207942](https://bugs.openjdk.java.net/browse/JDK-8207942)|Add new protected VirtualFlow methods for subclassing|controls
61+
[JDK-8210361](https://bugs.openjdk.java.net/browse/JDK-8210361)|Add images to docs for public API classes of controls and missing examples|controls
62+
[JDK-8204060](https://bugs.openjdk.java.net/browse/JDK-8204060)|[Canvas] Add API in GraphicsContext to control image smoothing|graphics
63+
[JDK-8214069](https://bugs.openjdk.java.net/browse/JDK-8214069)|Use xdg-open to get default web browser on Linux systems|graphics
64+
[JDK-8088418](https://bugs.openjdk.java.net/browse/JDK-8088418)|Reintroduce JFR Pulse Logger|other
65+
[JDK-8090930](https://bugs.openjdk.java.net/browse/JDK-8090930)|Support mouse forward/back buttons|scenegraph
66+
[JDK-8211249](https://bugs.openjdk.java.net/browse/JDK-8211249)|Refactor javafx.swing implementation to get rid of unneeded abstraction layer|swing
67+
[JDK-8148129](https://bugs.openjdk.java.net/browse/JDK-8148129)|Implement Accelerated composition for WebView|web
68+
[JDK-8207772](https://bugs.openjdk.java.net/browse/JDK-8207772)|File API and FileReader should be supported in WebView|web

doc-files/release-notes-13.md

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Release Notes for JavaFX 13
2+
3+
## Introduction
4+
5+
The following notes describe important changes and information about this release. In some cases, the descriptions provide links to additional detailed information about an issue or a change.
6+
7+
As of JDK 11 the JavaFX modules are delivered separately from the JDK. These release notes cover the standalone JavaFX 13 release. JavaFX 13 requires JDK 11 or later.
8+
9+
## List of Fixed Bugs
10+
11+
Issue key|Summary|Subcomponent
12+
---------|-------|------------
13+
[JDK-8221702](https://bugs.openjdk.java.net/browse/JDK-8221702)|Use HTTPS to download all build dependencies|build
14+
[JDK-8220012](https://bugs.openjdk.java.net/browse/JDK-8220012)|Accordion control holds reference to child pane after it is removed|controls
15+
[JDK-8209938](https://bugs.openjdk.java.net/browse/JDK-8209938)|Default and Cancel button cause memory leak|controls
16+
[JDK-8222222](https://bugs.openjdk.java.net/browse/JDK-8222222)|Gradients defined in CSS always use "reflect" even when "repeat" is specified|controls
17+
[JDK-8089986](https://bugs.openjdk.java.net/browse/JDK-8089986)|Menu beeps when mnemonics is used|controls
18+
[JDK-8222073](https://bugs.openjdk.java.net/browse/JDK-8222073)|Revert unintentional change to Dialog.java|controls
19+
[JDK-8222457](https://bugs.openjdk.java.net/browse/JDK-8222457)|TabPane doesn't respect order of TabPane.getTabs() list|controls
20+
[JDK-8222214](https://bugs.openjdk.java.net/browse/JDK-8222214)|TableView rows disappears when inside a pane and KEY_UP is pressed|controls
21+
[JDK-8197536](https://bugs.openjdk.java.net/browse/JDK-8197536)|TableView, ListView: unexpected scrolling behaviour on up/down keys|controls
22+
[JDK-8201539](https://bugs.openjdk.java.net/browse/JDK-8201539)|Crash in DirectWrite CreateBitmap code when running TestFX test suite|graphics
23+
[JDK-8222211](https://bugs.openjdk.java.net/browse/JDK-8222211)|Creating animated gif image from non FX App thread causes exception|graphics
24+
[JDK-8210973](https://bugs.openjdk.java.net/browse/JDK-8210973)|Focus goes to wrong Window when dismissing an Alert|graphics
25+
[JDK-8217492](https://bugs.openjdk.java.net/browse/JDK-8217492)|JavaFX - memory leak after the event WindowEvent.DESTROY|graphics
26+
[JDK-8221987](https://bugs.openjdk.java.net/browse/JDK-8221987)|NPE in javafx.graphics/javafx.stage.Window$TKBoundsConfigurator.apply|graphics
27+
[JDK-8226789](https://bugs.openjdk.java.net/browse/JDK-8226789)|Path rendered incorrectly when it goes outside the clipping region|graphics
28+
[JDK-8219008](https://bugs.openjdk.java.net/browse/JDK-8219008)|Update OpenGL Headers to version 4.6|graphics
29+
[JDK-8229890](https://bugs.openjdk.java.net/browse/JDK-8229890)|WritableImage update fails for empty region|graphics
30+
[JDK-8208076](https://bugs.openjdk.java.net/browse/JDK-8208076)|display INVISIBLE_GLYPH_ID as square box on Windows|graphics
31+
[JDK-8208173](https://bugs.openjdk.java.net/browse/JDK-8208173)|isComplexCharCode() returns false for U+11FF|graphics
32+
[JDK-8222217](https://bugs.openjdk.java.net/browse/JDK-8222217)|FX build fails on 32-bit Windows after fix for JDK-8133841|media
33+
[JDK-8133841](https://bugs.openjdk.java.net/browse/JDK-8133841)|Full HD video can not be played on standard 1080p screen in portrait mode|media
34+
[JDK-8209180](https://bugs.openjdk.java.net/browse/JDK-8209180)|Media fails to load source from custom image, with jrt: URL|media
35+
[JDK-8215894](https://bugs.openjdk.java.net/browse/JDK-8215894)|Provide media support for libav version 58|media
36+
[JDK-8222780](https://bugs.openjdk.java.net/browse/JDK-8222780)|Visual Studio does not open media vs_projects files|media
37+
[JDK-8213510](https://bugs.openjdk.java.net/browse/JDK-8213510)|[Windows] MediaPlayer does not play some mp3 with artwork stream in mjpeg|media
38+
[JDK-8211900](https://bugs.openjdk.java.net/browse/JDK-8211900)|javafx.media classes directly reference platform classes that are excluded|media
39+
[JDK-8218174](https://bugs.openjdk.java.net/browse/JDK-8218174)|Add missing license file for Mesa header files|other
40+
[JDK-8222746](https://bugs.openjdk.java.net/browse/JDK-8222746)|Cleanup third-party legal files|other
41+
[JDK-8221377](https://bugs.openjdk.java.net/browse/JDK-8221377)|Fix mistakes in FX API docs|other
42+
[JDK-8223377](https://bugs.openjdk.java.net/browse/JDK-8223377)|JavaFX can crash due to loading the wrong native libraries if system libraries are installed|other
43+
[JDK-8222212](https://bugs.openjdk.java.net/browse/JDK-8222212)|Memory Leak with SwingNode using Drag and Drop function|swing
44+
[JDK-8224636](https://bugs.openjdk.java.net/browse/JDK-8224636)|"CSS ""pointer-events"" property ""stroke"" is not respected for SVG renderings"|web
45+
[JDK-8219539](https://bugs.openjdk.java.net/browse/JDK-8219539)|Cherry pick GTK WebKit 2.22.6 changes|web
46+
[JDK-8220147](https://bugs.openjdk.java.net/browse/JDK-8220147)|Cherry pick GTK WebKit 2.22.7 changes|web
47+
[JDK-8227079](https://bugs.openjdk.java.net/browse/JDK-8227079)|Cherry pick GTK WebKit 2.24.3 changes|web
48+
[JDK-8215775](https://bugs.openjdk.java.net/browse/JDK-8215775)|Scrollbars from web pages appear to be absolute, overlapping everything|web
49+
[JDK-8225203](https://bugs.openjdk.java.net/browse/JDK-8225203)|Update SQLite to version 3.28.0|web
50+
[JDK-8219362](https://bugs.openjdk.java.net/browse/JDK-8219362)|Update to 608.1 version of WebKit|web
51+
[JDK-8217942](https://bugs.openjdk.java.net/browse/JDK-8217942)|Upgrade to libxslt 1.1.33|web
52+
[JDK-8222912](https://bugs.openjdk.java.net/browse/JDK-8222912)|Websocket client doesn't work in WebView|web
53+
[JDK-8221941](https://bugs.openjdk.java.net/browse/JDK-8221941)|Wrong package declaration for WCTextRunImpl.java in web module|web
54+
[JDK-8219734](https://bugs.openjdk.java.net/browse/JDK-8219734)|[WebView] Get rid of macOS SDK private API usage|web
55+
[JDK-8219917](https://bugs.openjdk.java.net/browse/JDK-8219917)|[WebView] Sub-resource integrity check fails on Windows and Linux|web
56+
[JDK-8227431](https://bugs.openjdk.java.net/browse/JDK-8227431)|[Windows] Fix assertion failure on X86 32-bit when enabling CLOOP based JavaScript interpreter|web
57+
[JDK-8230361](https://bugs.openjdk.java.net/browse/JDK-8230361)|[web] Cookies are not enabled in WebKit v608.1 |web
58+
[JDK-8229328](https://bugs.openjdk.java.net/browse/JDK-8229328)|[windows] PlatformFileHandle type should be JGObject rather than void
59+
[JDK-8222788](https://bugs.openjdk.java.net/browse/JDK-8222788)|javafx.web build fails on XCode 10.2|web
60+
[JDK-8226951](https://bugs.openjdk.java.net/browse/JDK-8226951)|Backout commit for JDK-8226537 to fix the attribution|window-toolkit
61+
[JDK-8211302](https://bugs.openjdk.java.net/browse/JDK-8211302)|DragAndDrop no longer works with GTK3|window-toolkit
62+
[JDK-8226537](https://bugs.openjdk.java.net/browse/JDK-8226537)|Multi-level Stage::initOwner can crash gnome-shell or X.org server|window-toolkit
63+
[JDK-8226274](https://bugs.openjdk.java.net/browse/JDK-8226274)|NPE in WinWindow.notifyMoving when Stage with no Scene is shown on 2nd monitor|window-toolkit
64+
[JDK-8088717](https://bugs.openjdk.java.net/browse/JDK-8088717)|Win: UNDECORATED windows are not minimized with the taskbar button|window-toolkit
65+
[JDK-8220272](https://bugs.openjdk.java.net/browse/JDK-8220272)|Window order is not correct when Modality.WINDOW_MODAL|window-toolkit
66+
[JDK-8212060](https://bugs.openjdk.java.net/browse/JDK-8212060)|[GTK3] Stage sometimes shown at top-left before moving to correct position|window-toolkit
67+
68+
69+
## List of Enhancements
70+
71+
Issue key|Summary|Subcomponent
72+
---------|-------|------------
73+
[JDK-8226454](https://bugs.openjdk.java.net/browse/JDK-8226454)|Point2D and Point3D should implement Interpolatable|animation
74+
[JDK-8221269](https://bugs.openjdk.java.net/browse/JDK-8221269)|Extract embedded actions from JSL grammar file to Visitor class|build
75+
[JDK-8223760](https://bugs.openjdk.java.net/browse/JDK-8223760)|support static build for macosx|build
76+
[JDK-8222258](https://bugs.openjdk.java.net/browse/JDK-8222258)|Add exclusion scope for LightBase|graphics
77+
[JDK-8167148](https://bugs.openjdk.java.net/browse/JDK-8167148)|Add native rendering support by supporting WritableImages backed by NIO ByteBuffers|graphics
78+
[JDK-8217605](https://bugs.openjdk.java.net/browse/JDK-8217605)|Add support for e-paper displays|graphics
79+
[JDK-8226912](https://bugs.openjdk.java.net/browse/JDK-8226912)|Color, Point2D and Point3D's fields should be made final|graphics
80+
[JDK-8217470](https://bugs.openjdk.java.net/browse/JDK-8217470)|Upgrade Direct3D9 shader model from 2.0 to 3.0 for 3D operations|graphics

modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ public void setTextFieldSkin(TextFieldSkin skin) {
178178
@Override protected void fire(KeyEvent event) {
179179
TextField textField = getNode();
180180
EventHandler<ActionEvent> onAction = textField.getOnAction();
181-
ActionEvent actionEvent = new ActionEvent(textField, null);
181+
// use textField as target to prevent immediate copy in dispatch
182+
ActionEvent actionEvent = new ActionEvent(textField, textField);
182183

183184
textField.commitValue();
184185
textField.fireEvent(actionEvent);

modules/javafx.controls/src/test/java/test/javafx/scene/control/TextFieldTest.java

+98-9
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,20 @@
2525

2626
package test.javafx.scene.control;
2727

28-
import test.com.sun.javafx.scene.control.infrastructure.StageLoader;
28+
import java.util.ArrayList;
29+
import java.util.List;
30+
31+
import org.junit.After;
32+
import org.junit.Before;
33+
import org.junit.Ignore;
34+
import org.junit.Test;
35+
36+
import com.sun.javafx.tk.Toolkit;
37+
38+
import static javafx.scene.input.KeyCode.*;
39+
import static org.junit.Assert.*;
40+
import static test.com.sun.javafx.scene.control.infrastructure.ControlTestUtils.*;
41+
2942
import javafx.beans.property.ObjectProperty;
3043
import javafx.beans.property.SimpleObjectProperty;
3144
import javafx.beans.property.SimpleStringProperty;
@@ -37,12 +50,13 @@
3750
import javafx.scene.Scene;
3851
import javafx.scene.control.TextField;
3952
import javafx.scene.control.TextInputControlShim;
40-
import org.junit.Before;
41-
import org.junit.Ignore;
42-
import org.junit.Test;
43-
44-
import static test.com.sun.javafx.scene.control.infrastructure.ControlTestUtils.*;
45-
import static org.junit.Assert.*;
53+
import javafx.scene.input.KeyCodeCombination;
54+
import javafx.scene.input.KeyEvent;
55+
import javafx.scene.layout.StackPane;
56+
import javafx.stage.Stage;
57+
import test.com.sun.javafx.pgstub.StubToolkit;
58+
import test.com.sun.javafx.scene.control.infrastructure.KeyEventFirer;
59+
import test.com.sun.javafx.scene.control.infrastructure.StageLoader;
4660

4761
public class TextFieldTest {
4862
private TextField txtField;//Empty string
@@ -284,6 +298,81 @@ public class TextFieldTest {
284298
assertEquals("x", dummyTxtField.getText());
285299
}
286300

287-
288-
301+
private Scene scene;
302+
private Stage stage;
303+
private StackPane root;
304+
305+
/**
306+
* test for JDK-8207774: ENTER must not be forwared if actionHandler
307+
* consumed the action.
308+
*
309+
* Here we test that an accelerator is not triggered.
310+
*/
311+
@Test
312+
public void testEnterWithConsumingActionHandlerAccelerator() {
313+
initStage();
314+
root.getChildren().add(txtField);
315+
txtField.addEventHandler(ActionEvent.ACTION, e -> e.consume());
316+
scene.getAccelerators().put(new KeyCodeCombination(ENTER), () ->
317+
fail("accelerator must not be notified"));
318+
stage.show();
319+
KeyEventFirer keyboard = new KeyEventFirer(txtField);
320+
keyboard.doKeyPress(ENTER);
321+
}
322+
323+
/**
324+
* test for JDK-8207774: ENTER must not be forwared if actionHandler
325+
* consumed the action.
326+
*
327+
* Here we test that handlers on parent are not notified.
328+
*/
329+
@Test
330+
public void testEnterWithConsumingActionHandlerParentHandler() {
331+
initStage();
332+
root.getChildren().add(txtField);
333+
txtField.addEventHandler(ActionEvent.ACTION, e -> e.consume());
334+
root.addEventHandler(KeyEvent.KEY_PRESSED, e ->
335+
fail("parent handler must not be notified but received: " + e ));
336+
stage.show();
337+
KeyEventFirer keyboard = new KeyEventFirer(txtField);
338+
keyboard.doKeyPress(ENTER);
339+
}
340+
341+
/**
342+
* sanity: pressing enter actually triggers a consuming actionHandler.
343+
*/
344+
@Test
345+
public void testEnterWithConsumingActionHandler() {
346+
initStage();
347+
root.getChildren().add(txtField);
348+
List<ActionEvent> actions = new ArrayList<>();
349+
txtField.addEventHandler(ActionEvent.ACTION, e -> {
350+
e.consume();
351+
actions.add(e);
352+
});
353+
stage.show();
354+
KeyEventFirer keyboard = new KeyEventFirer(txtField);
355+
keyboard.doKeyPress(ENTER);
356+
assertEquals("actionHandler must be notified", 1, actions.size());
357+
assertTrue("action must be consumed ", actions.get(0).isConsumed());
358+
}
359+
360+
/**
361+
* Helper method to init the stage only if really needed.
362+
*/
363+
private void initStage() {
364+
//This step is not needed (Just to make sure StubToolkit is loaded into VM)
365+
Toolkit tk = (StubToolkit)Toolkit.getToolkit();
366+
root = new StackPane();
367+
scene = new Scene(root);
368+
stage = new Stage();
369+
stage.setScene(scene);
370+
}
371+
372+
@After
373+
public void cleanup() {
374+
if (stage != null) {
375+
stage.hide();
376+
}
377+
}
289378
}

0 commit comments

Comments
 (0)