[NativeMenu] Implement native popup menu support on Windows.

This commit is contained in:
bruvzg
2024-03-07 20:42:24 +02:00
parent 61282068f4
commit ac7583e449
15 changed files with 1501 additions and 56 deletions

View File

@ -3664,6 +3664,9 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
// Process window messages.
switch (uMsg) {
case WM_MENUCOMMAND: {
native_menu->_menu_activate(HMENU(lParam), (int)wParam);
} break;
case WM_CREATE: {
if (is_dark_mode_supported() && dark_title_available) {
BOOL value = is_dark_mode();
@ -5470,7 +5473,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win
if (tts_enabled) {
tts = memnew(TTS_Windows);
}
native_menu = memnew(NativeMenu);
native_menu = memnew(NativeMenuWindows);
// Enforce default keep screen on value.
screen_set_keep_on(GLOBAL_GET("display/window/energy_saving/keep_screen_on"));