summaryrefslogtreecommitdiffstats
path: root/platform/android
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/android
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/android')
-rw-r--r--platform/android/display_server_android.cpp13
-rw-r--r--platform/android/display_server_android.h1
2 files changed, 13 insertions, 1 deletions
diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp
index 01ecbc7164..90759810b1 100644
--- a/platform/android/display_server_android.cpp
+++ b/platform/android/display_server_android.cpp
@@ -58,9 +58,13 @@ DisplayServerAndroid *DisplayServerAndroid::get_singleton() {
bool DisplayServerAndroid::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_CURSOR_SHAPE:
//case FEATURE_CUSTOM_CURSOR_SHAPE:
- //case FEATURE_GLOBAL_MENU:
//case FEATURE_HIDPI:
//case FEATURE_ICON:
//case FEATURE_IME:
@@ -578,6 +582,8 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis
keep_screen_on = GLOBAL_GET("display/window/energy_saving/keep_screen_on");
+ native_menu = memnew(NativeMenu);
+
#if defined(GLES3_ENABLED)
if (rendering_driver == "opengl3") {
RasterizerGLES3::make_current(false);
@@ -641,6 +647,11 @@ DisplayServerAndroid::DisplayServerAndroid(const String &p_rendering_driver, Dis
}
DisplayServerAndroid::~DisplayServerAndroid() {
+ if (native_menu) {
+ memdelete(native_menu);
+ native_menu = nullptr;
+ }
+
#if defined(RD_ENABLED)
if (rendering_device) {
memdelete(rendering_device);
diff --git a/platform/android/display_server_android.h b/platform/android/display_server_android.h
index c95eaddf93..e1914f4d18 100644
--- a/platform/android/display_server_android.h
+++ b/platform/android/display_server_android.h
@@ -76,6 +76,7 @@ class DisplayServerAndroid : public DisplayServer {
RenderingContextDriver *rendering_context = nullptr;
RenderingDevice *rendering_device = nullptr;
#endif
+ NativeMenu *native_menu = nullptr;
ObjectID window_attached_instance_id;