Fix Determining Window for Touchscreen
DisplayServer::screen_is_touchscreen will likely never utilize its parameter p_screen. This PR replaces this function by DisplayServer::is_touchscreen_available() with the same functionality. This solves the problem, that a SubViewport was used for determining the screen, which resulted in error messages.
This commit is contained in:
parent
c241f1c523
commit
e18107a57c
16 changed files with 25 additions and 40 deletions
|
|
@ -100,7 +100,7 @@ void TouchScreenButton::_notification(int p_what) {
|
|||
if (!is_inside_tree()) {
|
||||
return;
|
||||
}
|
||||
if (!Engine::get_singleton()->is_editor_hint() && !!DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id())) && visibility == VISIBILITY_TOUCHSCREEN_ONLY) {
|
||||
if (!Engine::get_singleton()->is_editor_hint() && !!DisplayServer::get_singleton()->is_touchscreen_available() && visibility == VISIBILITY_TOUCHSCREEN_ONLY) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -137,7 +137,7 @@ void TouchScreenButton::_notification(int p_what) {
|
|||
} break;
|
||||
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
if (!Engine::get_singleton()->is_editor_hint() && !!DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id())) && visibility == VISIBILITY_TOUCHSCREEN_ONLY) {
|
||||
if (!Engine::get_singleton()->is_editor_hint() && !!DisplayServer::get_singleton()->is_touchscreen_available() && visibility == VISIBILITY_TOUCHSCREEN_ONLY) {
|
||||
return;
|
||||
}
|
||||
queue_redraw();
|
||||
|
|
|
|||
|
|
@ -550,7 +550,7 @@ void ScrollBar::_drag_node_input(const Ref<InputEvent> &p_input) {
|
|||
drag_node_accum = Vector2();
|
||||
last_drag_node_accum = Vector2();
|
||||
drag_node_from = Vector2(orientation == HORIZONTAL ? get_value() : 0, orientation == VERTICAL ? get_value() : 0);
|
||||
drag_node_touching = DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id()));
|
||||
drag_node_touching = DisplayServer::get_singleton()->is_touchscreen_available();
|
||||
drag_node_touching_deaccel = false;
|
||||
time_since_motion = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -164,8 +164,8 @@ void ScrollContainer::gui_input(const Ref<InputEvent> &p_gui_input) {
|
|||
}
|
||||
}
|
||||
|
||||
bool screen_is_touchscreen = DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id()));
|
||||
if (!screen_is_touchscreen) {
|
||||
bool is_touchscreen_available = DisplayServer::get_singleton()->is_touchscreen_available();
|
||||
if (!is_touchscreen_available) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3671,7 +3671,7 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
|
|||
drag_accum = 0;
|
||||
//last_drag_accum=0;
|
||||
drag_from = v_scroll->get_value();
|
||||
drag_touching = DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id()));
|
||||
drag_touching = DisplayServer::get_singleton()->is_touchscreen_available();
|
||||
drag_touching_deaccel = false;
|
||||
if (drag_touching) {
|
||||
set_physics_process_internal(true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue