]> git.lizzy.rs Git - irrlicht.git/commitdiff
Fix IGUIElements not getting a tab order because of invisible or disabled parents.
authorcutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Tue, 27 Sep 2022 16:02:39 +0000 (16:02 +0000)
committersfan5 <sfan5@live.de>
Fri, 24 Mar 2023 16:09:11 +0000 (17:09 +0100)
First problem was that IGUIElement::getNextElement wasn't passing includeInvisible and includeDisabled flags recursively, so anything deeper than one level could fail if an element was disabled/invisible in between while it was created.
Second problem was that setTabOrder(-1) did ignore disabled elements. So when any parent was disabled when elements were created they never got a tab order.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6428 dfc29bdd-3216-0410-991c-e03cc46cb475

include/IGUIElement.h

index 4026b7eb2066dd345b7cd5382f68c1742a7c7cad..15fd3d152d228565a6c817a5277ae8aee3a3ac40 100644 (file)
@@ -433,7 +433,7 @@ public:
                        if (el)\r
                        {\r
                                // find the highest element number\r
-                               el->getNextElement(-1, true, IsTabGroup, first, closest, true);\r
+                               el->getNextElement(-1, true, IsTabGroup, first, closest, true, true);\r
                                if (first)\r
                                {\r
                                        TabOrder = first->getTabOrder() + 1;\r
@@ -706,7 +706,7 @@ public:
                                        }\r
                                }\r
                                // search within children\r
-                               if ((*it)->getNextElement(startOrder, reverse, group, first, closest))\r
+                               if ((*it)->getNextElement(startOrder, reverse, group, first, closest, includeInvisible, includeDisabled))\r
                                {\r
                                        return true;\r
                                }\r