Skip to content

Commit

Permalink
Merge pull request godotengine#96697 from devloglogan/long-press-fix
Browse files Browse the repository at this point in the history
Disable some android editor settings by default on XR devices
  • Loading branch information
akien-mga committed Sep 9, 2024
2 parents a0823ce + 16e1d8a commit 07c3951
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 4 deletions.
11 changes: 7 additions & 4 deletions editor/editor_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -527,15 +527,18 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {

// Touchscreen
bool has_touchscreen_ui = DisplayServer::get_singleton()->is_touchscreen_available();
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/touchscreen/increase_scrollbar_touch_area", has_touchscreen_ui, "")
set_restart_if_changed("interface/touchscreen/increase_scrollbar_touch_area", true);
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/touchscreen/enable_long_press_as_right_click", has_touchscreen_ui, "")
set_restart_if_changed("interface/touchscreen/enable_long_press_as_right_click", true);
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/touchscreen/enable_pan_and_scale_gestures", has_touchscreen_ui, "")
set_restart_if_changed("interface/touchscreen/enable_pan_and_scale_gestures", true);
EDITOR_SETTING(Variant::FLOAT, PROPERTY_HINT_RANGE, "interface/touchscreen/scale_gizmo_handles", has_touchscreen_ui ? 3 : 1, "1,5,1")
set_restart_if_changed("interface/touchscreen/scale_gizmo_handles", true);

// Disable some touchscreen settings by default for the XR Editor.
bool is_native_touchscreen = has_touchscreen_ui && !OS::get_singleton()->has_feature("xr_editor");
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/touchscreen/enable_long_press_as_right_click", is_native_touchscreen, "")
set_restart_if_changed("interface/touchscreen/enable_long_press_as_right_click", true);
EDITOR_SETTING(Variant::BOOL, PROPERTY_HINT_NONE, "interface/touchscreen/increase_scrollbar_touch_area", is_native_touchscreen, "")
set_restart_if_changed("interface/touchscreen/increase_scrollbar_touch_area", true);

// Scene tabs
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "interface/scene_tabs/display_close_button", 1, "Never,If Tab Active,Always"); // TabBar::CloseButtonDisplayPolicy
_initial_set("interface/scene_tabs/show_thumbnail_on_hover", true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -511,4 +511,12 @@ abstract class BaseGodotEditor : GodotActivity() {
val godot = godot ?: return Error.ERR_UNCONFIGURED
return verifyApk(godot.fileAccessHandler, apkPath)
}

override fun supportsFeature(featureTag: String): Boolean {
if (featureTag == "xr_editor") {
return isNativeXRDevice();
}

return false
}
}
4 changes: 4 additions & 0 deletions platform/android/java/lib/src/org/godotengine/godot/Godot.kt
Original file line number Diff line number Diff line change
Expand Up @@ -992,6 +992,10 @@ class Godot(private val context: Context) {
*/
@Keep
private fun hasFeature(feature: String): Boolean {
if (primaryHost?.supportsFeature(feature) ?: false) {
return true;
}

for (plugin in pluginRegistry.allPlugins) {
if (plugin.supportsFeature(feature)) {
return true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -501,4 +501,12 @@ public Error verifyApk(@NonNull String apkPath) {
}
return Error.ERR_UNAVAILABLE;
}

@Override
public boolean supportsFeature(String featureTag) {
if (parentHost != null) {
return parentHost.supportsFeature(featureTag);
}
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,13 @@ default Error signApk(@NonNull String inputPath, @NonNull String outputPath, @No
default Error verifyApk(@NonNull String apkPath) {
return Error.ERR_UNAVAILABLE;
}

/**
* Returns whether the given feature tag is supported.
*
* @see <a href="https://docs.godotengine.org/en/stable/tutorials/export/feature_tags.html">Feature tags</a>
*/
default boolean supportsFeature(String featureTag) {
return false;
}
}

0 comments on commit 07c3951

Please sign in to comment.