diff --git a/.gitignore b/.gitignore index 2b2c9c3d0d..ed01b0d956 100644 --- a/.gitignore +++ b/.gitignore @@ -196,3 +196,12 @@ ModuleCache.noindex/ Build/Intermediates.noindex/ info.plist build-intermediate + + +################## +# 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 7d6e8fc8ce..dad16bb3ed 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -607,6 +607,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 081a713e95..e1a2133239 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -498,6 +498,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(