* check move amount (56 pixels) in M2 toggle freelook or keep strafemode condition to allow fast strafe moves
This commit is contained in:
parent
16c00ac54c
commit
10c2b9bbd2
|
|
@ -799,6 +799,7 @@ CameraView& getCameraView(){
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer m_rightClickTimer;
|
Timer m_rightClickTimer;
|
||||||
|
float m_rightClickMove;
|
||||||
|
|
||||||
void selection_motion_freemove( const MotionDeltaValues& delta );
|
void selection_motion_freemove( const MotionDeltaValues& delta );
|
||||||
|
|
||||||
|
|
@ -921,6 +922,7 @@ gboolean enable_freelook_button_press( GtkWidget* widget, GdkEventButton* event,
|
||||||
else{
|
else{
|
||||||
camwnd->EnableFreeMove();
|
camwnd->EnableFreeMove();
|
||||||
camwnd->m_rightClickTimer.start();
|
camwnd->m_rightClickTimer.start();
|
||||||
|
camwnd->m_rightClickMove = 0;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
@ -930,13 +932,14 @@ gboolean enable_freelook_button_press( GtkWidget* widget, GdkEventButton* event,
|
||||||
gboolean disable_freelook_button_press( GtkWidget* widget, GdkEventButton* event, CamWnd* camwnd ){
|
gboolean disable_freelook_button_press( GtkWidget* widget, GdkEventButton* event, CamWnd* camwnd ){
|
||||||
if ( event->type == GDK_BUTTON_PRESS && event->button == 3 && modifiers_for_state( event->state ) == c_modifierNone ) {
|
if ( event->type == GDK_BUTTON_PRESS && event->button == 3 && modifiers_for_state( event->state ) == c_modifierNone ) {
|
||||||
camwnd->m_bFreeMove_entering = false;
|
camwnd->m_bFreeMove_entering = false;
|
||||||
bool doubleclicked = context_menu_try( camwnd );
|
const bool doubleclicked = context_menu_try( camwnd );
|
||||||
if( doubleclicked ){
|
if( doubleclicked ){
|
||||||
camwnd->DisableFreeMove();
|
camwnd->DisableFreeMove();
|
||||||
context_menu();
|
context_menu();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
camwnd->m_rightClickTimer.start();
|
camwnd->m_rightClickTimer.start();
|
||||||
|
camwnd->m_rightClickMove = 0;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
@ -945,8 +948,7 @@ gboolean disable_freelook_button_press( GtkWidget* widget, GdkEventButton* event
|
||||||
|
|
||||||
gboolean disable_freelook_button_release( GtkWidget* widget, GdkEventButton* event, CamWnd* camwnd ){
|
gboolean disable_freelook_button_release( GtkWidget* widget, GdkEventButton* event, CamWnd* camwnd ){
|
||||||
if ( event->type == GDK_BUTTON_RELEASE && event->button == 3 && modifiers_for_state( event->state ) == c_modifierNone ) {
|
if ( event->type == GDK_BUTTON_RELEASE && event->button == 3 && modifiers_for_state( event->state ) == c_modifierNone ) {
|
||||||
if( ( camwnd->m_rightClickTimer.elapsed_msec() > 300 && camwnd->m_bFreeMove_entering ) ||
|
if( ( ( camwnd->m_rightClickTimer.elapsed_msec() < 300 && camwnd->m_rightClickMove < 56 ) == !camwnd->m_bFreeMove_entering ) ){
|
||||||
( camwnd->m_rightClickTimer.elapsed_msec() < 300 && !camwnd->m_bFreeMove_entering ) ){
|
|
||||||
camwnd->DisableFreeMove();
|
camwnd->DisableFreeMove();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
@ -1023,6 +1025,7 @@ gboolean selection_button_release_freemove( GtkWidget* widget, GdkEventButton* e
|
||||||
}
|
}
|
||||||
|
|
||||||
void CamWnd::selection_motion_freemove( const MotionDeltaValues& delta ){
|
void CamWnd::selection_motion_freemove( const MotionDeltaValues& delta ){
|
||||||
|
m_rightClickMove += sqrt( static_cast<double>( delta.x * delta.x + delta.y * delta.y ) );
|
||||||
m_window_observer->incMouseMove( WindowVector( delta.x, delta.y ) );
|
m_window_observer->incMouseMove( WindowVector( delta.x, delta.y ) );
|
||||||
m_window_observer->onMouseMotion( windowvector_for_widget_centre( m_gl_widget ), modifiers_for_state( delta.state ) );
|
m_window_observer->onMouseMotion( windowvector_for_widget_centre( m_gl_widget ), modifiers_for_state( delta.state ) );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user