diff --git a/ReactiveExample/ReactiveExample.csproj b/ReactiveExample/ReactiveExample.csproj
index 6c4b3c0a9..d6afc18ff 100644
--- a/ReactiveExample/ReactiveExample.csproj
+++ b/ReactiveExample/ReactiveExample.csproj
@@ -11,8 +11,8 @@
1.10.1+6.Branch.main.Sha.f7ee66ddbf8dbcfb0d96af7d63789879091670ec
-
-
+
+
diff --git a/Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs b/Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs
index 9da53fd03..5e73f065a 100644
--- a/Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs
+++ b/Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs
@@ -43,6 +43,7 @@
//
using System;
using System.Runtime.InteropServices;
+using Terminal.Gui;
namespace Unix.Terminal {
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
@@ -93,7 +94,8 @@ namespace Unix.Terminal {
if (attempts == 1) {
attempts++;
- if (Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.OperatingSystem.Contains ("opensuse")) {
+ var (exitCode, result) = ClipboardProcessRunner.Bash ("cat /etc/os-release", waitForOutput: true);
+ if (exitCode == 0 && result.Contains ("opensuse")) {
libs [0] = "libncursesw.so.5";
}
} else {
diff --git a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
index 4f6a73eb2..ccc77044a 100644
--- a/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
+++ b/Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
@@ -873,7 +873,7 @@ namespace Terminal.Gui {
keyUpHandler (new KeyEvent (map, keyModifiers));
}
}
- if (!inputEvent.KeyEvent.bKeyDown) {
+ if (!inputEvent.KeyEvent.bKeyDown && (inputEvent.KeyEvent.dwControlKeyState == 0 || inputEvent.KeyEvent.dwControlKeyState == WindowsConsole.ControlKeyState.EnhancedKey)) {
keyModifiers = null;
}
break;
diff --git a/Terminal.Gui/Terminal.Gui.csproj b/Terminal.Gui/Terminal.Gui.csproj
index 9694ca019..08f4e1dc1 100644
--- a/Terminal.Gui/Terminal.Gui.csproj
+++ b/Terminal.Gui/Terminal.Gui.csproj
@@ -16,8 +16,6 @@
1.0
-
-
@@ -53,7 +51,7 @@
-
+
net472;netstandard2.1;net7.0
diff --git a/Terminal.Gui/Views/Menu.cs b/Terminal.Gui/Views/Menu.cs
index 2244531d1..9a825dd6b 100644
--- a/Terminal.Gui/Views/Menu.cs
+++ b/Terminal.Gui/Views/Menu.cs
@@ -1671,7 +1671,7 @@ namespace Terminal.Gui {
}
return true;
}
- if (mi is MenuBarItem menuBarItem && !menuBarItem.IsTopLevel && FindAndOpenMenuByShortcut (kb, menuBarItem.Children)) {
+ if (mi is MenuBarItem menuBarItem && menuBarItem.Children != null && !menuBarItem.IsTopLevel && FindAndOpenMenuByShortcut (kb, menuBarItem.Children)) {
return true;
}
}
diff --git a/UnitTests/Menus/MenuTests.cs b/UnitTests/Menus/MenuTests.cs
index b82450c9c..dc851b44c 100644
--- a/UnitTests/Menus/MenuTests.cs
+++ b/UnitTests/Menus/MenuTests.cs
@@ -1734,5 +1734,17 @@ Edit
│ │
└──────────────────────────────────────┘", output);
}
+
+ [Fact, AutoInitShutdown]
+ public void MenuBarItem_Children_Null_Does_Not_Throw ()
+ {
+ var menu = new MenuBar (new MenuBarItem [] {
+ new MenuBarItem("Test", "", null)
+ });
+ Application.Top.Add (menu);
+
+ var exception = Record.Exception (() => menu.ProcessColdKey (new KeyEvent (Key.Space, new KeyModifiers ())));
+ Assert.Null (exception);
+ }
}
}
diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj
index 516909d83..24ac50fd7 100644
--- a/UnitTests/UnitTests.csproj
+++ b/UnitTests/UnitTests.csproj
@@ -21,11 +21,11 @@
TRACE;DEBUG_IDISPOSABLE
-
-
+
+
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive