Skip to content

Commit 8a5344c

Browse files
Merge
2 parents 2e0d01c + 935e99d commit 8a5344c

File tree

20 files changed

+1226
-260
lines changed

20 files changed

+1226
-260
lines changed

buildSrc/linux.gradle

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ def gtk2CCFlags = [ ];
8383
def gtk3CCFlags = [ "-Wno-deprecated-declarations" ];
8484
def gtk2LinkFlags = [ ];
8585
def gtk3LinkFlags = [ ];
86-
LINUX.buildGTK3 = true
8786

8887
// Create $buildDir/linux_tools.properties file and load props from it
8988
setupTools("linux_gtk2",
@@ -120,28 +119,25 @@ setupTools("linux_gtk3",
120119
exec {
121120
commandLine("${toolchainDir}pkg-config", "--cflags", "gtk+-3.0", "gthread-2.0", "xtst")
122121
setStandardOutput(results2);
123-
ignoreExitValue(true)
124122
}
125123
propFile << "cflagsGTK3=" << results2.toString().trim() << "\n";
126124

127125
ByteArrayOutputStream results4 = new ByteArrayOutputStream();
128126
exec {
129127
commandLine("${toolchainDir}pkg-config", "--libs", "gtk+-3.0", "gthread-2.0", "xtst")
130128
setStandardOutput(results4);
131-
ignoreExitValue(true)
132129
}
133130
propFile << "libsGTK3=" << results4.toString().trim() << "\n";
134131

135132
},
136133
{ properties ->
137-
def ccflags = properties.getProperty("cflagsGTK3")
138-
def ldflags = properties.getProperty("libsGTK3")
139-
if (ccflags && ldflags) {
140-
gtk3CCFlags.addAll(ccflags.split(" "))
141-
gtk3LinkFlags.addAll(ldflags.split(" "))
134+
def cflagsGTK3 = properties.getProperty("cflagsGTK3")
135+
def libsGTK3 = properties.getProperty("libsGTK3")
136+
if (cflagsGTK3 && libsGTK3) {
137+
gtk3CCFlags.addAll(cflagsGTK3.split(" "))
138+
gtk3LinkFlags.addAll(libsGTK3.split(" "))
142139
} else {
143-
logger.info("Warning: GTK3 development packages not found, not building GTK3 support");
144-
LINUX.buildGTK3 = false
140+
throw new IllegalStateException("GTK3 development packages not found. If GTK3 packages are installed, please remove the build directory and try again.")
145141
}
146142
}
147143
)
@@ -213,13 +209,7 @@ def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : "${toolchainDir}gcc";
213209
def linker = IS_STATIC_BUILD ? "ar" : IS_COMPILE_PARFAIT ? "parfait-g++" : "${toolchainDir}g++";
214210

215211
LINUX.glass = [:]
216-
LINUX.glass.variants = ["glass", "glassgtk2"]
217-
if (LINUX.buildGTK3) {
218-
logger.info("Building libglassgtk3")
219-
LINUX.glass.variants += "glassgtk3"
220-
} else {
221-
logger.warn("NOT Building libglassgtk3")
222-
}
212+
LINUX.glass.variants = ["glass", "glassgtk2", "glassgtk3"]
223213

224214
FileTree ft_gtk_launcher = fileTree("${project(":graphics").projectDir}/src/main/native-glass/gtk/") {
225215
include("**/launcher.c")
@@ -232,7 +222,7 @@ FileTree ft_gtk = fileTree("${project(":graphics").projectDir}/src/main/native-g
232222
LINUX.glass.glass = [:]
233223
LINUX.glass.glass.nativeSource = ft_gtk_launcher.getFiles()
234224
LINUX.glass.glass.compiler = compiler
235-
LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten()
225+
LINUX.glass.glass.ccFlags = [ccFlags, "-Werror"].flatten()
236226
LINUX.glass.glass.linker = linker
237227
LINUX.glass.glass.linkFlags = IS_STATIC_BUILD? linkFlags : [linkFlags, "-lX11", "-ldl"].flatten()
238228
LINUX.glass.glass.lib = "glass"

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

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,16 @@
2525

2626
package com.sun.javafx.scene.control.behavior;
2727

28+
29+
import com.sun.javafx.PlatformUtil;
30+
import com.sun.javafx.geom.transform.Affine3D;
31+
import com.sun.javafx.scene.NodeHelper;
2832
import com.sun.javafx.scene.control.Properties;
33+
import com.sun.javafx.scene.control.skin.Utils;
34+
import com.sun.javafx.stage.WindowHelper;
35+
36+
import static com.sun.javafx.PlatformUtil.*;
37+
2938
import javafx.beans.value.ChangeListener;
3039
import javafx.beans.value.WeakChangeListener;
3140
import javafx.event.ActionEvent;
@@ -35,23 +44,14 @@
3544
import javafx.geometry.Rectangle2D;
3645
import javafx.scene.Node;
3746
import javafx.scene.Scene;
38-
import javafx.scene.control.ContextMenu;
3947
import javafx.scene.control.TextField;
4048
import javafx.scene.control.skin.TextFieldSkin;
41-
import com.sun.javafx.scene.control.skin.Utils;
4249
import javafx.scene.input.ContextMenuEvent;
4350
import javafx.scene.input.KeyEvent;
4451
import javafx.scene.input.MouseEvent;
4552
import javafx.scene.text.HitInfo;
4653
import javafx.stage.Screen;
4754
import javafx.stage.Window;
48-
import com.sun.javafx.PlatformUtil;
49-
import com.sun.javafx.geom.transform.Affine3D;
50-
51-
import static com.sun.javafx.PlatformUtil.isMac;
52-
import static com.sun.javafx.PlatformUtil.isWindows;
53-
import com.sun.javafx.scene.NodeHelper;
54-
import com.sun.javafx.stage.WindowHelper;
5555

5656
/**
5757
* Text field behavior.
@@ -183,9 +183,10 @@ public void setTextFieldSkin(TextFieldSkin skin) {
183183

184184
textField.commitValue();
185185
textField.fireEvent(actionEvent);
186-
187-
if (onAction == null && !actionEvent.isConsumed()) {
188-
forwardToParent(event);
186+
// fix of JDK-8207759: reverted logic
187+
// mapping not auto-consume and consume if handled by action
188+
if (onAction != null || actionEvent.isConsumed()) {
189+
event.consume();
189190
}
190191
}
191192

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public TextInputControlBehavior(T c) {
124124
final Predicate<KeyEvent> validOnLinux = e -> !PlatformUtil.isLinux();
125125

126126
KeyMapping cancelEditMapping;
127+
KeyMapping fireMapping;
127128
KeyMapping consumeMostPressedEventsMapping;
128129

129130
// create a child input map for mappings which are applicable on all
@@ -136,7 +137,7 @@ public TextInputControlBehavior(T c) {
136137
keyMapping(HOME, e -> c.home()),
137138
keyMapping(DOWN, e -> c.end()),
138139
keyMapping(END, e -> c.end()),
139-
keyMapping(ENTER, this::fire),
140+
fireMapping = keyMapping(ENTER, this::fire),
140141

141142
keyMapping(new KeyBinding(HOME).shortcut(), e -> c.home()),
142143
keyMapping(new KeyBinding(END).shortcut(), e -> c.end()),
@@ -213,6 +214,8 @@ public TextInputControlBehavior(T c) {
213214
);
214215

215216
cancelEditMapping.setAutoConsume(false);
217+
// fix of JDK-8207759: don't auto-consume
218+
fireMapping.setAutoConsume(false);
216219
consumeMostPressedEventsMapping.setAutoConsume(false);
217220

218221
// mac os specific mappings
@@ -620,18 +623,7 @@ private void rightWord() {
620623
}
621624

622625
protected void fire(KeyEvent event) { } // TODO move to TextFieldBehavior
623-
protected void cancelEdit(KeyEvent event) { forwardToParent(event);} // not autoconsumed
624-
625-
protected void forwardToParent(KeyEvent event) {
626-
// fix for JDK-8145515
627-
if (getNode().getProperties().containsKey(DISABLE_FORWARD_TO_PARENT)) {
628-
return;
629-
}
630-
631-
if (getNode().getParent() != null) {
632-
getNode().getParent().fireEvent(event);
633-
}
634-
}
626+
protected void cancelEdit(KeyEvent event) { };
635627

636628
protected void selectHome() {
637629
getNode().selectHome();

modules/javafx.controls/src/main/java/javafx/scene/control/skin/NestedTableColumnHeader.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,28 @@
2525

2626
package javafx.scene.control.skin;
2727

28-
import com.sun.javafx.scene.control.skin.Utils;
29-
import javafx.beans.property.ObjectProperty;
30-
import javafx.collections.WeakListChangeListener;
31-
import java.util.ArrayList;
32-
import java.util.List;
33-
import java.util.Map;
34-
import java.util.WeakHashMap;
35-
import java.util.concurrent.atomic.AtomicBoolean;
36-
3728
import javafx.collections.FXCollections;
3829
import javafx.collections.ListChangeListener;
3930
import javafx.collections.ObservableList;
31+
import javafx.collections.WeakListChangeListener;
4032
import javafx.event.EventHandler;
4133
import javafx.geometry.NodeOrientation;
4234
import javafx.scene.Cursor;
4335
import javafx.scene.Node;
44-
import javafx.scene.control.*;
36+
import javafx.scene.control.ResizeFeaturesBase;
37+
import javafx.scene.control.TableColumnBase;
38+
import javafx.scene.control.TableView;
39+
import javafx.scene.control.TreeTableView;
4540
import javafx.scene.input.MouseEvent;
4641
import javafx.scene.paint.Color;
4742
import javafx.scene.shape.Rectangle;
4843
import javafx.util.Callback;
4944

45+
import java.util.ArrayList;
46+
import java.util.List;
47+
import java.util.Map;
48+
import java.util.WeakHashMap;
49+
5050
/**
5151
* <p>This class is used to construct the header of a TableView. We take the approach
5252
* that every TableView header is nested - even if it isn't. This allows for us
@@ -165,7 +165,11 @@ public NestedTableColumnHeader(final TableColumnBase tc) {
165165
if (me.getClickCount() == 2 && me.isPrimaryButtonDown()) {
166166
// the user wants to resize the column such that its
167167
// width is equal to the widest element in the column
168-
TableSkinUtils.resizeColumnToFitContent(header.getTableSkin(), column, -1);
168+
TableHeaderRow tableHeader = header.getTableHeaderRow();
169+
TableColumnHeader columnHeader = tableHeader.getColumnHeaderFor(column);
170+
if (columnHeader != null) {
171+
columnHeader.resizeColumnToFitContent(-1);
172+
}
169173
} else {
170174
// rather than refer to the rect variable, we just grab
171175
// it from the source to prevent a small memory leak.

modules/javafx.controls/src/main/java/javafx/scene/control/skin/ProgressBarSkin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public ProgressBarSkin(ProgressBar control) {
9898

9999
barWidth = ((int) (control.getWidth() - snappedLeftInset() - snappedRightInset()) * 2 * Math.min(1, Math.max(0, control.getProgress()))) / 2.0F;
100100

101-
control.widthProperty().addListener(observable -> updateProgress());
101+
registerChangeListener(control.widthProperty(), o -> updateProgress());
102102

103103
initialize();
104104
getSkinnable().requestLayout();

0 commit comments

Comments
 (0)