summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/plugins/spatial_editor_plugin.cpp18
-rw-r--r--platform/javascript/os_javascript.cpp3
-rw-r--r--platform/javascript/os_javascript.h2
-rw-r--r--scene/main/scene_tree.cpp3
4 files changed, 23 insertions, 3 deletions
diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp
index 31dce720db..bf87bfc14d 100644
--- a/editor/plugins/spatial_editor_plugin.cpp
+++ b/editor/plugins/spatial_editor_plugin.cpp
@@ -3613,6 +3613,24 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
view_menu->set_disable_shortcuts(true);
+ if (OS::get_singleton()->get_current_video_driver() == OS::VIDEO_DRIVER_GLES2) {
+ // Alternate display modes only work when using the GLES3 renderer; make this explicit.
+ const int normal_idx = view_menu->get_popup()->get_item_index(VIEW_DISPLAY_NORMAL);
+ const int wireframe_idx = view_menu->get_popup()->get_item_index(VIEW_DISPLAY_WIREFRAME);
+ const int overdraw_idx = view_menu->get_popup()->get_item_index(VIEW_DISPLAY_OVERDRAW);
+ const int shadeless_idx = view_menu->get_popup()->get_item_index(VIEW_DISPLAY_SHADELESS);
+ const String unsupported_tooltip = TTR("Not available when using the GLES2 renderer.");
+
+ view_menu->get_popup()->set_item_disabled(normal_idx, true);
+ view_menu->get_popup()->set_item_tooltip(normal_idx, unsupported_tooltip);
+ view_menu->get_popup()->set_item_disabled(wireframe_idx, true);
+ view_menu->get_popup()->set_item_tooltip(wireframe_idx, unsupported_tooltip);
+ view_menu->get_popup()->set_item_disabled(overdraw_idx, true);
+ view_menu->get_popup()->set_item_tooltip(overdraw_idx, unsupported_tooltip);
+ view_menu->get_popup()->set_item_disabled(shadeless_idx, true);
+ view_menu->get_popup()->set_item_tooltip(shadeless_idx, unsupported_tooltip);
+ }
+
ED_SHORTCUT("spatial_editor/freelook_left", TTR("Freelook Left"), KEY_A);
ED_SHORTCUT("spatial_editor/freelook_right", TTR("Freelook Right"), KEY_D);
ED_SHORTCUT("spatial_editor/freelook_forward", TTR("Freelook Forward"), KEY_W);
diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp
index 5562b059f4..592def8011 100644
--- a/platform/javascript/os_javascript.cpp
+++ b/platform/javascript/os_javascript.cpp
@@ -301,6 +301,7 @@ EM_BOOL OS_JavaScript::mouse_button_callback(int p_event_type, const EmscriptenM
ev->set_position(correct_canvas_position(p_event->canvasX, p_event->canvasY));
ev->set_global_position(ev->get_position());
dom2godot_mod(p_event, ev);
+
switch (p_event->button) {
case DOM_BUTTON_LEFT: ev->set_button_index(BUTTON_LEFT); break;
case DOM_BUTTON_MIDDLE: ev->set_button_index(BUTTON_MIDDLE); break;
@@ -312,7 +313,7 @@ EM_BOOL OS_JavaScript::mouse_button_callback(int p_event_type, const EmscriptenM
if (ev->is_pressed()) {
- uint64_t diff = p_event->timestamp - os->last_click_ms;
+ double diff = emscripten_get_now() - os->last_click_ms;
if (ev->get_button_index() == os->last_click_button_index) {
diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h
index a5696f8aae..2d1c765e76 100644
--- a/platform/javascript/os_javascript.h
+++ b/platform/javascript/os_javascript.h
@@ -55,7 +55,7 @@ class OS_JavaScript : public OS_Unix {
Point2 touches[32];
Point2i last_click_pos;
- uint64_t last_click_ms;
+ double last_click_ms;
int last_click_button_index;
MainLoop *main_loop;
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp
index da147e7112..7c43d8fb14 100644
--- a/scene/main/scene_tree.cpp
+++ b/scene/main/scene_tree.cpp
@@ -423,7 +423,8 @@ void SceneTree::input_event(const Ref<InputEvent> &p_event) {
input_handled = false;
- const Ref<InputEvent> &ev = p_event;
+ // Don't make const ref unless you can find and fix what caused GH-34691.
+ Ref<InputEvent> ev = p_event;
MainLoop::input_event(ev);