From 5684109acb63555302c82f6b5e349f9bc90a7d15 Mon Sep 17 00:00:00 2001 From: chanayane Date: Wed, 18 Sep 2024 00:29:56 +0200 Subject: [PATCH] Add key bindings for Camera Roll --- indra/newview/app_settings/key_bindings.xml | 9 +++++++ indra/newview/llkeyconflict.cpp | 4 ++++ indra/newview/llviewerinput.cpp | 22 +++++++++++++++++ .../xui/en/control_table_contents_camera.xml | 24 +++++++++++++++++++ 4 files changed, 59 insertions(+) diff --git a/indra/newview/app_settings/key_bindings.xml b/indra/newview/app_settings/key_bindings.xml index 9a1e8e753b..94585916b9 100644 --- a/indra/newview/app_settings/key_bindings.xml +++ b/indra/newview/app_settings/key_bindings.xml @@ -35,6 +35,10 @@ + + + + @@ -121,6 +125,11 @@ + + + + + diff --git a/indra/newview/llkeyconflict.cpp b/indra/newview/llkeyconflict.cpp index 666ab4f5d0..215714efed 100644 --- a/indra/newview/llkeyconflict.cpp +++ b/indra/newview/llkeyconflict.cpp @@ -813,6 +813,10 @@ void LLKeyConflictHandler::generatePlaceholders(ESourceMode load_mode) registerTemporaryControl("pan_out"); registerTemporaryControl("spin_around_ccw"); registerTemporaryControl("spin_around_cw"); +// Camera roll key bindings + registerTemporaryControl("roll_left"); + registerTemporaryControl("roll_right"); +// // control_table_contents_editing.xml registerTemporaryControl("edit_avatar_spin_ccw"); diff --git a/indra/newview/llviewerinput.cpp b/indra/newview/llviewerinput.cpp index 198e02db66..9fef4a6272 100644 --- a/indra/newview/llviewerinput.cpp +++ b/indra/newview/llviewerinput.cpp @@ -586,6 +586,24 @@ bool camera_pan_out( EKeystate s ) return true; } +// Camera roll key bindings +bool camera_roll_left( EKeystate s ) +{ + if( KEYSTATE_UP == s ) return true; + gAgentCamera.unlockView(); + gAgentCamera.setRollLeftKey(get_orbit_rate()); + return true; +} + +bool camera_roll_right( EKeystate s ) +{ + if( KEYSTATE_UP == s ) return true; + gAgentCamera.unlockView(); + gAgentCamera.setRollRightKey(get_orbit_rate()); + return true; +} +// + bool camera_move_forward_fast( EKeystate s ) { if( KEYSTATE_UP == s ) return true; @@ -1040,6 +1058,10 @@ REGISTER_KEYBOARD_ACTION("pan_left", camera_pan_left); REGISTER_KEYBOARD_ACTION("pan_right", camera_pan_right); REGISTER_KEYBOARD_ACTION("pan_in", camera_pan_in); REGISTER_KEYBOARD_ACTION("pan_out", camera_pan_out); +// Camera roll key bindings +REGISTER_KEYBOARD_ACTION("roll_left", camera_roll_left); +REGISTER_KEYBOARD_ACTION("roll_right", camera_roll_right); +// REGISTER_KEYBOARD_ACTION("move_forward_fast", camera_move_forward_fast); REGISTER_KEYBOARD_ACTION("move_backward_fast", camera_move_backward_fast); REGISTER_KEYBOARD_ACTION("edit_avatar_spin_ccw", edit_avatar_spin_ccw); diff --git a/indra/newview/skins/default/xui/en/control_table_contents_camera.xml b/indra/newview/skins/default/xui/en/control_table_contents_camera.xml index 74e8b9e5f9..e4f6309e34 100644 --- a/indra/newview/skins/default/xui/en/control_table_contents_camera.xml +++ b/indra/newview/skins/default/xui/en/control_table_contents_camera.xml @@ -175,6 +175,30 @@ tool_tip="Camera spin around clockwise" value="Clockwise" /> + + + + + + + +