diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-04-07 11:20:36 +1000 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-04-07 20:23:00 +1000 |
| commit | 7c04bfdb54ccf5b4b67995c9715a3f7f9e454206 (patch) | |
| tree | a40349dc7eb7ef1a56b1c30e742530821e1bf4e1 /src/WixToolset.Core | |
| parent | 59ffa86b7d62ddc52ec813fb65c47f812aeded66 (diff) | |
| download | wix-7c04bfdb54ccf5b4b67995c9715a3f7f9e454206.tar.gz wix-7c04bfdb54ccf5b4b67995c9715a3f7f9e454206.tar.bz2 wix-7c04bfdb54ccf5b4b67995c9715a3f7f9e454206.zip | |
Fix bugs when compiling UI.wixext
Diffstat (limited to 'src/WixToolset.Core')
| -rw-r--r-- | src/WixToolset.Core/Compiler.cs | 2 | ||||
| -rw-r--r-- | src/WixToolset.Core/Compiler_UI.cs | 34 |
2 files changed, 19 insertions, 17 deletions
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index 0eb0b1d3..9db938e1 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs | |||
| @@ -6295,7 +6295,7 @@ namespace WixToolset.Core | |||
| 6295 | case "default": | 6295 | case "default": |
| 6296 | action = "Default"; | 6296 | action = "Default"; |
| 6297 | break; | 6297 | break; |
| 6298 | case "disnable": | 6298 | case "disable": |
| 6299 | action = "Disable"; | 6299 | action = "Disable"; |
| 6300 | break; | 6300 | break; |
| 6301 | case "enable": | 6301 | case "enable": |
diff --git a/src/WixToolset.Core/Compiler_UI.cs b/src/WixToolset.Core/Compiler_UI.cs index 8a425fd4..60e89d12 100644 --- a/src/WixToolset.Core/Compiler_UI.cs +++ b/src/WixToolset.Core/Compiler_UI.cs | |||
| @@ -465,12 +465,12 @@ namespace WixToolset.Core | |||
| 465 | { | 465 | { |
| 466 | case "Control": | 466 | case "Control": |
| 467 | // These are all thrown away. | 467 | // These are all thrown away. |
| 468 | IntermediateTuple lastTabRow = null; | 468 | ControlTuple lastTabTuple = null; |
| 469 | string firstControl = null; | 469 | string firstControl = null; |
| 470 | string defaultControl = null; | 470 | string defaultControl = null; |
| 471 | string cancelControl = null; | 471 | string cancelControl = null; |
| 472 | 472 | ||
| 473 | this.ParseControlElement(child, id.Id, TupleDefinitionType.BBControl, ref lastTabRow, ref firstControl, ref defaultControl, ref cancelControl); | 473 | this.ParseControlElement(child, id.Id, TupleDefinitionType.BBControl, ref lastTabTuple, ref firstControl, ref defaultControl, ref cancelControl); |
| 474 | break; | 474 | break; |
| 475 | default: | 475 | default: |
| 476 | this.Core.UnexpectedElement(node, child); | 476 | this.Core.UnexpectedElement(node, child); |
| @@ -954,7 +954,7 @@ namespace WixToolset.Core | |||
| 954 | id = Identifier.Invalid; | 954 | id = Identifier.Invalid; |
| 955 | } | 955 | } |
| 956 | 956 | ||
| 957 | IntermediateTuple lastTabRow = null; | 957 | ControlTuple lastTabTuple = null; |
| 958 | string cancelControl = null; | 958 | string cancelControl = null; |
| 959 | string defaultControl = null; | 959 | string defaultControl = null; |
| 960 | string firstControl = null; | 960 | string firstControl = null; |
| @@ -966,7 +966,7 @@ namespace WixToolset.Core | |||
| 966 | switch (child.Name.LocalName) | 966 | switch (child.Name.LocalName) |
| 967 | { | 967 | { |
| 968 | case "Control": | 968 | case "Control": |
| 969 | this.ParseControlElement(child, id.Id, TupleDefinitionType.Control, ref lastTabRow, ref firstControl, ref defaultControl, ref cancelControl); | 969 | this.ParseControlElement(child, id.Id, TupleDefinitionType.Control, ref lastTabTuple, ref firstControl, ref defaultControl, ref cancelControl); |
| 970 | break; | 970 | break; |
| 971 | default: | 971 | default: |
| 972 | this.Core.UnexpectedElement(node, child); | 972 | this.Core.UnexpectedElement(node, child); |
| @@ -979,11 +979,11 @@ namespace WixToolset.Core | |||
| 979 | } | 979 | } |
| 980 | } | 980 | } |
| 981 | 981 | ||
| 982 | if (null != lastTabRow && null != lastTabRow[1]) | 982 | if (null != lastTabTuple && null != lastTabTuple.Control) |
| 983 | { | 983 | { |
| 984 | if (firstControl != lastTabRow[1].ToString()) | 984 | if (firstControl != lastTabTuple.Control) |
| 985 | { | 985 | { |
| 986 | lastTabRow.Set(10, firstControl); | 986 | lastTabTuple.NextControlRef = firstControl; |
| 987 | } | 987 | } |
| 988 | } | 988 | } |
| 989 | 989 | ||
| @@ -1027,12 +1027,12 @@ namespace WixToolset.Core | |||
| 1027 | /// <param name="node">Element to parse.</param> | 1027 | /// <param name="node">Element to parse.</param> |
| 1028 | /// <param name="dialog">Identifier for parent dialog.</param> | 1028 | /// <param name="dialog">Identifier for parent dialog.</param> |
| 1029 | /// <param name="table">Table control belongs in.</param> | 1029 | /// <param name="table">Table control belongs in.</param> |
| 1030 | /// <param name="lastTabTuple">Last row in the tab order.</param> | 1030 | /// <param name="lastTabTuple">Last control in the tab order.</param> |
| 1031 | /// <param name="firstControl">Name of the first control in the tab order.</param> | 1031 | /// <param name="firstControl">Name of the first control in the tab order.</param> |
| 1032 | /// <param name="defaultControl">Name of the default control.</param> | 1032 | /// <param name="defaultControl">Name of the default control.</param> |
| 1033 | /// <param name="cancelControl">Name of the candle control.</param> | 1033 | /// <param name="cancelControl">Name of the candle control.</param> |
| 1034 | /// <param name="trackDiskSpace">True if the containing dialog tracks disk space.</param> | 1034 | /// <param name="trackDiskSpace">True if the containing dialog tracks disk space.</param> |
| 1035 | private void ParseControlElement(XElement node, string dialog, TupleDefinitionType tupleType, ref IntermediateTuple lastTabTuple, ref string firstControl, ref string defaultControl, ref string cancelControl) | 1035 | private void ParseControlElement(XElement node, string dialog, TupleDefinitionType tupleType, ref ControlTuple lastTabTuple, ref string firstControl, ref string defaultControl, ref string cancelControl) |
| 1036 | { | 1036 | { |
| 1037 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 1037 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
| 1038 | Identifier controlId = null; | 1038 | Identifier controlId = null; |
| @@ -1529,7 +1529,15 @@ namespace WixToolset.Core | |||
| 1529 | 1529 | ||
| 1530 | if (!notTabbable) | 1530 | if (!notTabbable) |
| 1531 | { | 1531 | { |
| 1532 | if (TupleDefinitionType.BBControl == tupleType) | 1532 | if (tuple is ControlTuple controlTuple) |
| 1533 | { | ||
| 1534 | if (null != lastTabTuple) | ||
| 1535 | { | ||
| 1536 | lastTabTuple.NextControlRef = controlTuple.Control; | ||
| 1537 | } | ||
| 1538 | lastTabTuple = controlTuple; | ||
| 1539 | } | ||
| 1540 | else if (tuple != null) | ||
| 1533 | { | 1541 | { |
| 1534 | this.Core.Write(ErrorMessages.TabbableControlNotAllowedInBillboard(sourceLineNumbers, node.Name.LocalName, controlType)); | 1542 | this.Core.Write(ErrorMessages.TabbableControlNotAllowedInBillboard(sourceLineNumbers, node.Name.LocalName, controlType)); |
| 1535 | } | 1543 | } |
| @@ -1538,12 +1546,6 @@ namespace WixToolset.Core | |||
| 1538 | { | 1546 | { |
| 1539 | firstControl = controlId.Id; | 1547 | firstControl = controlId.Id; |
| 1540 | } | 1548 | } |
| 1541 | |||
| 1542 | if (null != lastTabTuple) | ||
| 1543 | { | ||
| 1544 | lastTabTuple.Set(10, controlId.Id); | ||
| 1545 | } | ||
| 1546 | lastTabTuple = tuple; | ||
| 1547 | } | 1549 | } |
| 1548 | 1550 | ||
| 1549 | // bitmap and icon controls contain a foreign key into the binary table in the text column; | 1551 | // bitmap and icon controls contain a foreign key into the binary table in the text column; |
