summaryrefslogtreecommitdiffstats
path: root/platform/web/display_server_web.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-03-06 13:16:52 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-03-06 13:16:52 +0100
commit13954fc33e603aac4f13973b77aa644f7dcc95f0 (patch)
tree4afc6546c675816713c902f0f06a308d97fa8ab1 /platform/web/display_server_web.cpp
parentb85337b7eaf4ba0217046c126e0f8ea4f7e09ea5 (diff)
parentc65a6679248476f554a0876ac32618b580beb010 (diff)
downloadredot-engine-13954fc33e603aac4f13973b77aa644f7dcc95f0.tar.gz
Merge pull request #87452 from bruvzg/native_menu
Move `global_menu_*` methods to a separate `NativeMenu` class.
Diffstat (limited to 'platform/web/display_server_web.cpp')
-rw-r--r--platform/web/display_server_web.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/platform/web/display_server_web.cpp b/platform/web/display_server_web.cpp
index 2e3afc49ca..281f312000 100644
--- a/platform/web/display_server_web.cpp
+++ b/platform/web/display_server_web.cpp
@@ -1030,6 +1030,7 @@ DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode
r_error = OK; // Always succeeds for now.
tts = GLOBAL_GET("audio/general/text_to_speech");
+ native_menu = memnew(NativeMenu); // Dummy native menu.
// Ensure the canvas ID.
godot_js_config_canvas_id_get(canvas_id, 256);
@@ -1098,6 +1099,10 @@ DisplayServerWeb::DisplayServerWeb(const String &p_rendering_driver, WindowMode
}
DisplayServerWeb::~DisplayServerWeb() {
+ if (native_menu) {
+ memdelete(native_menu);
+ native_menu = nullptr;
+ }
#ifdef GLES3_ENABLED
if (webgl_ctx) {
emscripten_webgl_commit_frame();
@@ -1108,7 +1113,11 @@ DisplayServerWeb::~DisplayServerWeb() {
bool DisplayServerWeb::has_feature(Feature p_feature) const {
switch (p_feature) {
- //case FEATURE_GLOBAL_MENU:
+#ifndef DISABLE_DEPRECATED
+ case FEATURE_GLOBAL_MENU: {
+ return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU));
+ } break;
+#endif
//case FEATURE_HIDPI:
case FEATURE_ICON:
case FEATURE_CLIPBOARD: