Showing 1 changed files with 19 additions and 16 deletions
+19 -16
Nasal/softkeys.nas
... ...
@@ -832,15 +832,15 @@ var softkeysClass = {
832 832
                     var checklistIndex = me.device.windows.state[id].objects[selected].checklistIndex;
833 833
 
834 834
                     if (contains(me.device.windows.state[id].objects[selected], 'pageIndex'))
835
-                        pageIndex = me.device.windows.state[id].objects[selected].pageIndex;
835
+                        var pageIndex = me.device.windows.state[id].objects[selected].pageIndex;
836 836
                     else
837
-                        pageIndex = -1;
837
+                        var pageIndex = -1;
838 838
 
839 839
                     var title = '';
840 840
                     if (contains(me.device.windows.state[id].objects[selected], 'checklistTitle'))
841
-                        title = me.device.windows.state[id].objects[selected].checklistTitle;
841
+                        var title = me.device.windows.state[id].objects[selected].checklistTitle;
842 842
                     else
843
-                        title = me.device.windows.state[id].objects[selected].text;
843
+                        var title = me.device.windows.state[id].objects[selected].text;
844 844
 
845 845
                     me.device.windows.del(id);
846 846
 
... ...
@@ -853,6 +853,8 @@ var softkeysClass = {
853 853
                                     .getChild('checklist', checklistIndex);
854 854
 
855 855
                     var pages = checklistNode.getChildren('page');
856
+                    if (size(pages) == 0)
857
+                        append(pages, checklistNode);
856 858
 
857 859
                     if (size(pages) and pageIndex == -1)
858 860
                         pageIndex = 0;
... ...
@@ -944,7 +946,7 @@ var softkeysClass = {
944 946
                     me.device.buttons.ENT    = me.device.buttons.ValidateTMRREF;
945 947
                     me.device.buttons.CLR = func {
946 948
                         me.device.windows.del(id);
947
-                        me.device.knobs.FmsOuter = func;
949
+                        me.device.knobs.FmsOuter = me.device.knobs.MFD_select_page_group;
948 950
                         me.device.knobs.FmsInner = func;
949 951
                         foreach (var b; ['ENT', 'CLR'])
950 952
                             me.device.buttons[b] = func;
... ...
@@ -955,19 +957,20 @@ var softkeysClass = {
955 957
                 LIST: func {
956 958
                     # nested function as checklist lists may be organized by group
957 959
                     var listChecklists = func (id, selected) {
958
-                        var groupIndex = me.device.windows.state[id].objects[selected].groupIndex;
959
-
960
-                        me.device.windows.del(id);
961
-
962 960
                         var checklists = [];
963 961
                         var firstEntry = 1;
964
-                        if (groupIndex == -1)
962
+                        if (selected < 0) {
965 963
                             checklists = props.globals.getNode("/sim/checklists")
966 964
                                             .getChildren('checklist');
967
-                        else
965
+                            var groupIndex = -1;
966
+                        }
967
+                        else {
968
+                            var groupIndex = me.device.windows.state[id].objects[selected].groupIndex;
969
+                            me.device.windows.del(id);
968 970
                             checklists = props.globals.getNode("/sim/checklists")
969 971
                                             .getChild("group", groupIndex)
970 972
                                             .getChildren('checklist');
973
+                        }
971 974
                         var checklistsQty = size(checklists);
972 975
                         var obj_infos = [];
973 976
 
... ...
@@ -1002,7 +1005,7 @@ var softkeysClass = {
1002 1005
                         me.device.buttons.ENT    = me.device.buttons.ValidateTMRREF;
1003 1006
                         me.device.buttons.CLR = func {
1004 1007
                             me.device.windows.del(id);
1005
-                            me.device.knobs.FmsOuter = func;
1008
+                            me.device.knobs.FmsOuter = me.device.knobs.MFD_select_page_group;
1006 1009
                             me.device.knobs.FmsInner = func;
1007 1010
                             foreach (var b; ['ENT', 'CLR'])
1008 1011
                                 me.device.buttons[b] = func;
... ...
@@ -1011,10 +1014,10 @@ var softkeysClass = {
1011 1014
                         me.device.windows.draw(id, {autogeom: 1}, obj_infos);
1012 1015
                     }
1013 1016
 
1014
-                    var windowId = 'CHKLIST LIST';
1015
-                    if (contains(me.device.windows.state, windowId))
1017
+                    foreach(var windowId; keys(me.device.windows.state))
1016 1018
                         me.device.windows.del(windowId);
1017 1019
 
1020
+                    var windowId = 'CHKLIST LIST';
1018 1021
                     var obj_infos = [];
1019 1022
                     var firstEntry = 1;
1020 1023
                     var groups = props.globals.getNode("/sim/checklists").getChildren("group");
... ...
@@ -1055,7 +1058,7 @@ var softkeysClass = {
1055 1058
                     me.device.buttons.ENT    = me.device.buttons.ValidateTMRREF;
1056 1059
                     me.device.buttons.CLR = func {
1057 1060
                         me.device.windows.del(windowId);
1058
-                        me.device.knobs.FmsOuter = func;
1061
+                        me.device.knobs.FmsOuter = me.device.knobs.MFD_select_page_group;
1059 1062
                         me.device.knobs.FmsInner = func;
1060 1063
                         foreach (var b; ['ENT', 'CLR'])
1061 1064
                             me.device.buttons[b] = func;
... ...
@@ -1101,7 +1104,7 @@ var softkeysClass = {
1101 1104
                         me.device.buttons.ENT    = me.device.buttons.ValidateTMRREF;
1102 1105
                         me.device.buttons.CLR = func {
1103 1106
                             me.device.windows.del(id);
1104
-                            me.device.knobs.FmsOuter = func;
1107
+                            me.device.knobs.FmsOuter = me.device.knobs.MFD_select_page_group;
1105 1108
                             me.device.knobs.FmsInner = func;
1106 1109
                             foreach (var b; ['ENT', 'CLR'])
1107 1110
                                 me.device.buttons[b] = func;