summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/wayland/display_server_wayland.cpp
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2024-01-19 19:41:01 +0200
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2024-03-04 23:41:41 +0200
commitc65a6679248476f554a0876ac32618b580beb010 (patch)
treea0e7937dcde18acb8e4178b29df0cedbd92905a4 /platform/linuxbsd/wayland/display_server_wayland.cpp
parenta07dd0d6a520723c4838fb4b65461a16b7a50f90 (diff)
downloadredot-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.cpp13
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) {