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

yishayw 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 779f76b  Emulation - deal with case header renderer item has a nested 
element that can be clicked
779f76b is described below

commit 779f76b6305ae5b1e2f9673be7b884d37ef30848
Author: Yishay Weiss <[email protected]>
AuthorDate: Tue Feb 15 19:28:18 2022 +0200

    Emulation - deal with case header renderer item has a nested element that 
can be clicked
---
 .../royale/mx/controls/beads/DataGridSortBead.as   | 25 +++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridSortBead.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridSortBead.as
index e81ec44..d27de15 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridSortBead.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DataGridSortBead.as
@@ -33,6 +33,8 @@ package mx.controls.beads
        import org.apache.royale.events.MouseEvent;
        import org.apache.royale.events.Event;
        import org.apache.royale.html.DataGridButtonBar;
+       import org.apache.royale.core.IIndexedItemRenderer;
+       import org.apache.royale.core.IChild;
     
        public class DataGridSortBead implements IBead
        {
@@ -63,11 +65,24 @@ package mx.controls.beads
                private function mouseClickHandler(event:MouseEvent):void
                {
                        var dgView:DataGridView = dg.view as DataGridView;
-            var buttonBar:DataGridButtonBar = (dgView.header as 
DataGridButtonBar);
-            // probably down on one button and up on another button
-            // so the ButtonBar won't change selection
-            if (event.target == buttonBar) return;
-                       var column:DataGridColumn = event.target.data as 
DataGridColumn;
+                       var buttonBar:DataGridButtonBar = (dgView.header as 
DataGridButtonBar);
+                       // probably down on one button and up on another button
+                       // so the ButtonBar won't change selection
+                       if (event.target == buttonBar) return;
+                       var headerRenderer:IIndexedItemRenderer;
+                       if ((event.target as IChild).parent == buttonBar)
+                       {
+                               headerRenderer = event.target as 
IIndexedItemRenderer;
+                       } else
+                       {
+                               var child:IChild = event.target as IChild;
+                               while (child.parent != buttonBar)
+                               {
+                                       child = child.parent as IChild;
+                               }
+                               headerRenderer = child as IIndexedItemRenderer;
+                       }
+                       var column:DataGridColumn = headerRenderer.data as 
DataGridColumn;
                        if (column && !column.sortable) {
                                //ignore clicks on headers of columns that are 
not sortable
                                return;

Reply via email to