mirror of
https://github.com/bevyengine/bevy
synced 2024-09-20 14:32:06 +00:00
Invert Y axis of all cursor interaction instead of only UI
This commit is contained in:
parent
c0c8011165
commit
8429b6d6ca
3 changed files with 5 additions and 15 deletions
|
@ -123,8 +123,6 @@ pub fn ui_focus_system(
|
|||
.find_map(|window| window.cursor_position())
|
||||
.or_else(|| touches_input.first_pressed_position());
|
||||
|
||||
let window_height = windows.get_primary().expect("No primary window").height();
|
||||
|
||||
let mut moused_over_z_sorted_nodes = node_query
|
||||
.iter_mut()
|
||||
.filter_map(
|
||||
|
@ -157,7 +155,7 @@ pub fn ui_focus_system(
|
|||
// clicking
|
||||
let contains_cursor = if let Some(cursor_position) = cursor_position {
|
||||
(min.x..max.x).contains(&cursor_position.x)
|
||||
&& (min.y..max.y).contains(&(window_height - cursor_position.y))
|
||||
&& (min.y..max.y).contains(&cursor_position.y)
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
|
|
@ -247,7 +247,7 @@ pub fn extract_default_ui_camera_view<T: Component>(
|
|||
Mat4::orthographic_rh(0.0, logical_size.x, logical_size.y, 0.0, 0.0, UI_CAMERA_FAR);
|
||||
let default_camera_view = commands
|
||||
.spawn(ExtractedView {
|
||||
projection: projection.get_projection_matrix(),
|
||||
projection: projection_matrix,
|
||||
transform: GlobalTransform::from_xyz(
|
||||
0.0,
|
||||
0.0,
|
||||
|
|
|
@ -149,12 +149,9 @@ fn change_window(
|
|||
}
|
||||
bevy_window::WindowCommand::SetCursorPosition { position } => {
|
||||
let window = winit_windows.get_window(id).unwrap();
|
||||
let inner_size = window.inner_size().to_logical::<f32>(window.scale_factor());
|
||||
|
||||
window
|
||||
.set_cursor_position(LogicalPosition::new(
|
||||
position.x,
|
||||
inner_size.height - position.y,
|
||||
))
|
||||
.set_cursor_position(LogicalPosition::new(position.x, position.y))
|
||||
.unwrap_or_else(|e| error!("Unable to set cursor position: {}", e));
|
||||
}
|
||||
bevy_window::WindowCommand::SetMaximized { maximized } => {
|
||||
|
@ -431,13 +428,8 @@ pub fn winit_runner_with(mut app: App) {
|
|||
}
|
||||
WindowEvent::CursorMoved { position, .. } => {
|
||||
let mut cursor_moved_events = world.resource_mut::<Events<CursorMoved>>();
|
||||
let winit_window = winit_windows.get_window(window_id).unwrap();
|
||||
let inner_size = winit_window.inner_size();
|
||||
|
||||
// move origin to bottom left
|
||||
let y_position = inner_size.height as f64 - position.y;
|
||||
|
||||
let physical_position = DVec2::new(position.x, y_position);
|
||||
let physical_position = DVec2::new(position.x, position.y);
|
||||
window
|
||||
.update_cursor_physical_position_from_backend(Some(physical_position));
|
||||
|
||||
|
|
Loading…
Reference in a new issue