This is an automated email from the ASF dual-hosted git repository.

pent pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new d2434b4  Fixed positioning and display of drop indicator for SWF 
platform.
d2434b4 is described below

commit d2434b4ab9309db17705e45ab7dd76f4697f057c
Author: Peter Ent <[email protected]>
AuthorDate: Wed Jan 31 10:41:28 2018 -0500

    Fixed positioning and display of drop indicator for SWF platform.
---
 .../royale/html/beads/DataGridDrawingLayerBead.as  | 35 ++++++++--------------
 .../html/beads/DataGridWithDrawingLayerLayout.as   | 19 +++++-------
 .../apache/royale/html/beads/IDrawingLayerBead.as  |  3 +-
 .../html/beads/SingleSelectionDropTargetBead.as    |  6 +---
 .../royale/org/apache/royale/express/DataGrid.as   | 14 ++++-----
 5 files changed, 28 insertions(+), 49 deletions(-)

diff --git 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
index d498a29..9b7e5fc 100644
--- 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
+++ 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridDrawingLayerBead.as
@@ -24,9 +24,11 @@ package org.apache.royale.html.beads
        import org.apache.royale.core.UIBase;
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
-       import org.apache.royale.html.beads.IDataGridView;
        import org.apache.royale.html.beads.IDrawingLayerBead;
        
+       COMPILE::SWF {
+               import org.apache.royale.html.beads.SolidBackgroundBead;
+       }
     
        /**
         *  DataGridDrawingLayerBead places a graphic space into the DataGrid 
that is
@@ -61,8 +63,15 @@ package org.apache.royale.html.beads
                public function set strand(value:IStrand):void
                {
                        _strand = value;
-                       
-                       
IEventDispatcher(_strand).addEventListener("beadsAdded", handleBeadsAdded);
+                                               
+                       _layer = new UIBase();
+                       _layer.className = "DataGridDrawingLayer";
+                       COMPILE::JS {
+                               _layer.element.style.position = "absolute";
+                               _layer.element.style['pointer-events'] = 'none';
+                               _layer.element.style['overflow'] = 'hidden';
+                       }
+                       UIBase(_strand).addElement(_layer);
                }
                
                private var _layer:UIBase;
@@ -79,25 +88,5 @@ package org.apache.royale.html.beads
                {
                        return _layer;
                }
-               
-               /**
-                * @private
-                */
-               private function handleBeadsAdded(event:Event):void
-               {
-                       var view:IDataGridView = UIBase(_strand).view as 
IDataGridView;
-                       if (view != null) {
-                               _layer = new UIBase();
-                               _layer.className = "DataGridDrawingLayer";
-                               COMPILE::JS {
-                                       _layer.element.style.position = 
"absolute";
-                                       _layer.element.style['pointer-events'] 
= 'none';
-                                       _layer.element.style['overflow'] = 
'hidden';
-                               }
-                               UIBase(_strand).addElement(_layer);
-                       }
-                       // else: this is an error as this bead cannot be used 
with anything but
-                       // a DataGrid.
-               }
        }
 }
diff --git 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
index 4f3232c..355dd57 100644
--- 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
+++ 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/DataGridWithDrawingLayerLayout.as
@@ -68,8 +68,6 @@ package org.apache.royale.html.beads
                {
                        super.strand = value;
                        _strand = value;
-                       
-                       _strand.addBead(new DataGridDrawingLayerBead());
                }
 
                /**
@@ -77,25 +75,21 @@ package org.apache.royale.html.beads
                 */
                override public function layout():Boolean
                {
-                       // If there is a drawing layer, remove it so the 
super.layout function
-                       // will not include it.
+                       // Get the drawing layer, if there is one, so it can be 
positioned at the
+                       // top of the z-order and sized properly.
                        var layerBead:IDrawingLayerBead = 
_strand.getBeadByType(IDrawingLayerBead) as IDrawingLayerBead;
-                       if (layerBead != null && layerBead.layer == null) {
-                               UIBase(_strand).dispatchEvent(new 
Event("beadsAdded"));
-                       }
-//                     if (layerBead != null && layerBead.layer != null) {
-//                             UIBase(_strand).removeElement(layerBead.layer);
-//                     }
 
                        // Run the actual layout
                        var result:Boolean = super.layout();
 
                        // Put the drawing layer back, sizing it to fit over 
the listArea.
-                       if (layerBead != null && layerBead.layer != null) {
-//                             UIBase(_strand).addElement(layerBead.layer);
+                       if (result && layerBead != null && layerBead.layer != 
null) {
                                
                                var view:IDataGridView = UIBase(_strand).view 
as IDataGridView;
                                var listArea:UIBase = view.listArea;
+                               
+                               UIBase(_strand).removeElement(layerBead.layer);
+                               UIBase(_strand).addElement(layerBead.layer); // 
always keep it on top
 
                                var layerX:Number = listArea.x;
                                var layerY:Number = listArea.y;
@@ -117,6 +111,7 @@ package org.apache.royale.html.beads
                                layerBead.layer.setWidthAndHeight(useWidth, 
useHeight, true);
 
                        }
+                       
                        return result;
                }
        }
diff --git 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
index 2ce1fdf..1b8a092 100644
--- 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
+++ 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/IDrawingLayerBead.as
@@ -19,6 +19,7 @@
 package org.apache.royale.html.beads
 {
        import org.apache.royale.core.UIBase;
+       import org.apache.royale.core.IBead;
        
     
        /**
@@ -30,7 +31,7 @@ package org.apache.royale.html.beads
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.8
         */
-       public interface IDrawingLayerBead
+       public interface IDrawingLayerBead extends IBead
        {
                /**
                 * Returns the component to use as the actual drawing surface.
diff --git 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
index 2f159e2..2ee627b 100644
--- 
a/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
+++ 
b/frameworks/projects/DragDrop/src/main/royale/org/apache/royale/html/beads/SingleSelectionDropTargetBead.as
@@ -266,10 +266,6 @@ package org.apache.royale.html.beads
                                return;
                        }
 
-                       var pt0:Point;
-                       var pt1:Point;
-                       var pt2:Point;
-
                        var startHere:Object = event.relatedObject;
                        while( !(startHere is IItemRenderer) && startHere != 
null) {
                                startHere = startHere.parent;
@@ -386,7 +382,7 @@ package org.apache.royale.html.beads
                        var pt2:Point;
 
                        if (dropDirection == "horizontal") {
-                               pt0 = new Point(0, item.y);
+                               pt0 = new Point(0, item.y+item.height);
                                pt1 = PointUtils.localToGlobal(pt0, 
item.parent);
                                pt2 = PointUtils.globalToLocal(pt1, 
indicatorParent);
                                _dropIndicator.x = 0;
diff --git 
a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
 
b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
index b052184..5162890 100644
--- 
a/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
+++ 
b/frameworks/projects/Express/src/main/royale/org/apache/royale/express/DataGrid.as
@@ -21,12 +21,12 @@ package org.apache.royale.express
        import org.apache.royale.core.IBeadLayout;
        import org.apache.royale.core.IDataProviderNotifier;
        import org.apache.royale.html.DataGrid;
-       import org.apache.royale.html.beads.SingleSelectionDragSourceBead;
+       import org.apache.royale.html.beads.DataGridDrawingLayerBead;
+       import org.apache.royale.html.beads.DataGridWithDrawingLayerLayout;
        import org.apache.royale.html.beads.SingleSelectionDragImageBead;
-       import org.apache.royale.html.beads.SingleSelectionDropTargetBead;
+       import org.apache.royale.html.beads.SingleSelectionDragSourceBead;
        import org.apache.royale.html.beads.SingleSelectionDropIndicatorBead;
-       import org.apache.royale.html.beads.DataGridWithDrawingLayerLayout;
-       import org.apache.royale.html.beads.DataGridDrawingLayerBead;
+       import org.apache.royale.html.beads.SingleSelectionDropTargetBead;
        import org.apache.royale.utils.loadBeadFromValuesManager;
 
        /**
@@ -63,11 +63,8 @@ package org.apache.royale.express
                                dataNotifier = 
loadBeadFromValuesManager(IDataProviderNotifier, "iDataProviderNotifier", this) 
as IDataProviderNotifier;
                        }
                        super.addedToParent();
-                       if(getBeadByType(IBeadLayout) is 
DataGridWithDrawingLayerLayout)
-                       {
-                               addBead(new DataGridDrawingLayerBead());
-                       }
                }
+               
                public var dataNotifier:IDataProviderNotifier;
 
                private var _dragEnabled:Boolean = false;
@@ -115,6 +112,7 @@ package org.apache.royale.express
                        _dropEnabled = value;
                        if(value)
                        {
+                               addBead(new DataGridDrawingLayerBead());
                                addBead(new SingleSelectionDropTargetBead());
                                addBead(new SingleSelectionDropIndicatorBead());
                        }

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to