diff --git a/.gitignore b/.gitignore index 8a1c107ee0..b5a46e16f4 100644 --- a/.gitignore +++ b/.gitignore @@ -199,9 +199,10 @@ build-intermediate obj-Direct2D1/ obj-Skia/ - ################## # Vim ################## .vim +coc-settings.json .ccls-cache +.ccls diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index bc7fc1c9fa..097aba6dc9 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -608,6 +608,14 @@ namespace Avalonia.Win32.Interop GWL_USERDATA = -21 } + public enum MenuCharParam + { + MNC_IGNORE = 0, + MNC_CLOSE = 1, + MNC_EXECUTE = 2, + MNC_SELECT = 3 + } + [StructLayout(LayoutKind.Sequential)] public struct RGBQUAD { diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 5cc148fa0d..2f7805884d 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -514,6 +514,10 @@ namespace Avalonia.Win32 KeyInterop.KeyFromVirtualKey(ToInt32(wParam)), WindowsKeyboardDevice.Instance.Modifiers); break; + case UnmanagedMethods.WindowsMessage.WM_MENUCHAR: + // mute the system beep + return (IntPtr)((Int32)UnmanagedMethods.MenuCharParam.MNC_CLOSE << 16); + case UnmanagedMethods.WindowsMessage.WM_KEYUP: case UnmanagedMethods.WindowsMessage.WM_SYSKEYUP: e = new RawKeyEventArgs(