diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2024-01-19 19:41:01 +0200 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2024-03-04 23:41:41 +0200 |
commit | c65a6679248476f554a0876ac32618b580beb010 (patch) | |
tree | a0e7937dcde18acb8e4178b29df0cedbd92905a4 /platform/linuxbsd/wayland/display_server_wayland.cpp | |
parent | a07dd0d6a520723c4838fb4b65461a16b7a50f90 (diff) | |
download | redot-engine-c65a6679248476f554a0876ac32618b580beb010.tar.gz |
Move `global_menu_*` methods to a separate `NativeMenu` class.
Diffstat (limited to 'platform/linuxbsd/wayland/display_server_wayland.cpp')
-rw-r--r-- | platform/linuxbsd/wayland/display_server_wayland.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/platform/linuxbsd/wayland/display_server_wayland.cpp b/platform/linuxbsd/wayland/display_server_wayland.cpp index 528c688a9c..c61037d69a 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.cpp +++ b/platform/linuxbsd/wayland/display_server_wayland.cpp @@ -192,6 +192,11 @@ void DisplayServerWayland::_show_window() { bool DisplayServerWayland::has_feature(Feature p_feature) const { switch (p_feature) { +#ifndef DISABLE_DEPRECATED + case FEATURE_GLOBAL_MENU: { + return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU)); + } break; +#endif case FEATURE_MOUSE: case FEATURE_CLIPBOARD: case FEATURE_CURSOR_SHAPE: @@ -1231,6 +1236,8 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win // Input. Input::get_singleton()->set_event_dispatch_function(dispatch_input_events); + native_menu = memnew(NativeMenu); + #ifdef SPEECHD_ENABLED // Init TTS tts = memnew(TTS_Linux); @@ -1355,6 +1362,12 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win DisplayServerWayland::~DisplayServerWayland() { // TODO: Multiwindow support. + + if (native_menu) { + memdelete(native_menu); + native_menu = nullptr; + } + if (main_window.visible) { #ifdef VULKAN_ENABLED if (rendering_device) { |