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

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

commit a474a42e7f64b5c2bef5e1f3b72809b5f2e17c4f
Author: Josh Tynjala <[email protected]>
AuthorDate: Wed Apr 30 13:52:19 2025 -0700

    ASDoc: fix issue where classes with the same base name, but different 
packages, couldn't navigate between each other
---
 .../ASDoc/src/main/royale/models/ASDocModel.as     | 37 ++++++++++++++--------
 1 file changed, 23 insertions(+), 14 deletions(-)

diff --git a/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as 
b/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as
index 828618535f..e04893d157 100644
--- a/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as
+++ b/examples/royale/ASDoc/src/main/royale/models/ASDocModel.as
@@ -334,6 +334,12 @@ package models
                        if (value != _currentPackage)
                        {
                 _currentPackage = value;
+                // if the package changes, the current class will no longer
+                // be displayed, so clear it. this also ensures that classes
+                // with the same base name, but in different packages, can
+                // navigate between each other because the currentClass setter
+                // checks only the base name changing.
+                currentClass = null;
                 var packageData:Object = allPackages[value];
                 var arr:Array = [];
                 for (var p:String in packageData)
@@ -370,24 +376,27 @@ package models
             if (value != _currentClass)
             {
                 _currentClass = value;
+                _currentClassData = null;
                 var packageData:Object = allPackages[_currentPackage];
                 dispatchEvent(new Event("currentClassChanged"));
-                platformList = platforms.slice();
-                currentPlatform = platformList.shift();
-                app.service.addEventListener("ioError", classIOErrorHandler);
-                app.service.addEventListener("complete", classCompleteHandler);
-                var urlQname:String;
-                if (_currentPackage != "Top Level")
-                {
-                    urlQname = _currentPackage + "." + _currentClass;
-                }
-                else
+                if (_currentClass)
                 {
-                    urlQname = _currentClass;
+                    platformList = platforms.slice();
+                    currentPlatform = platformList.shift();
+                    app.service.addEventListener("ioError", 
classIOErrorHandler);
+                    app.service.addEventListener("complete", 
classCompleteHandler);
+                    var urlQname:String;
+                    if (_currentPackage != "Top Level")
+                    {
+                        urlQname = _currentPackage + "." + _currentClass;
+                    }
+                    else
+                    {
+                        urlQname = _currentClass;
+                    }
+                    app.service.url = computeFileName(urlQname);
+                    app.service.send();
                 }
-                app.service.url = computeFileName(urlQname);
-                app.service.send();
-                _currentClassData = null;
             }
         }
         

Reply via email to