changeset 9136:d8109a288bf1 9-b72

Automated merge with http://hg.openjdk.java.net/openjfx/9/rt
author kcr
date Fri, 03 Jul 2015 08:28:21 -0700
parents 5ad658511116 e427ea2b331e
children 7f60804df42a 3d7e9e1dc844
files
diffstat 3 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/buildSrc/armv5sf.gradle	Thu Jul 02 01:08:35 2015 -0700
+++ b/buildSrc/armv5sf.gradle	Fri Jul 03 08:28:21 2015 -0700
@@ -340,6 +340,7 @@
 ARMV5SF.glass.monocle = [:]
 ARMV5SF.glass.monocle.nativeSource = [
         file("modules/graphics/src/main/native-glass/monocle"),
+        file("modules/graphics/src/main/native-glass/monocle/mx6"),
         file("modules/graphics/src/main/native-glass/monocle/linux"),
         file("modules/graphics/src/main/native-glass/monocle/util") ]
 ARMV5SF.glass.monocle.compiler = compiler
--- a/buildSrc/armv7sf.gradle	Thu Jul 02 01:08:35 2015 -0700
+++ b/buildSrc/armv7sf.gradle	Fri Jul 03 08:28:21 2015 -0700
@@ -341,6 +341,7 @@
 ARMV7SF.glass.monocle = [:]
 ARMV7SF.glass.monocle.nativeSource = [
         file("modules/graphics/src/main/native-glass/monocle"),
+        file("modules/graphics/src/main/native-glass/monocle/mx6"),
         file("modules/graphics/src/main/native-glass/monocle/linux"),
         file("modules/graphics/src/main/native-glass/monocle/util") ]
 ARMV7SF.glass.monocle.compiler = compiler
--- a/modules/graphics/src/main/java/javafx/scene/Node.java	Thu Jul 02 01:08:35 2015 -0700
+++ b/modules/graphics/src/main/java/javafx/scene/Node.java	Fri Jul 03 08:28:21 2015 -0700
@@ -518,6 +518,8 @@
     private BaseBounds _geomBounds = new RectBounds(0, 0, -1, -1);
     private BaseBounds _txBounds = new RectBounds(0, 0, -1, -1);
 
+    private boolean pendingUpdateBounds = false;
+
     // Happens before we hold the sync lock
     void updateBounds() {
         // Note: the clip must be handled before the visibility is checked. This is because the visiblity might be
@@ -529,8 +531,27 @@
 
         // See impl_syncPeer()
         if (!treeVisible && !impl_isDirty(DirtyBits.NODE_VISIBLE)) {
+
+            // Need to save the dirty bits since they will be cleared even for the
+            // case of short circuiting dirty bit processing.
+            if (impl_isDirty(DirtyBits.NODE_TRANSFORM)
+                    || impl_isDirty(DirtyBits.NODE_TRANSFORMED_BOUNDS)
+                    || impl_isDirty(DirtyBits.NODE_BOUNDS)) {
+                pendingUpdateBounds = true;
+            }
+
             return;
         }
+
+        // Set transform and bounds dirty bits when this node becomes visible
+        if (pendingUpdateBounds) {
+            impl_markDirty(DirtyBits.NODE_TRANSFORM);
+            impl_markDirty(DirtyBits.NODE_TRANSFORMED_BOUNDS);
+            impl_markDirty(DirtyBits.NODE_BOUNDS);
+
+            pendingUpdateBounds = false;
+        }
+
         if (impl_isDirty(DirtyBits.NODE_TRANSFORM) || impl_isDirty(DirtyBits.NODE_TRANSFORMED_BOUNDS)) {
             if (impl_isDirty(DirtyBits.NODE_TRANSFORM)) {
                 updateLocalToParentTransform();