Index: /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/pscharcontrol.cpp
===================================================================
--- /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/pscharcontrol.cpp (révision 1769)
+++ /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/pscharcontrol.cpp (copie de travail)
@@ -527,7 +527,7 @@
// RS: invert mouselook status so the mouselook button can be
// used to temporarily switch out of mouselook mode too
movement->MouseLook(!movement->MouseLook());
- if (!movement->MouseZoom()) { // KL: No CenterMouse while in MouseZoom mode.
+ if (!movement->MouseZoom() && movement->MouseLook()) { // KL: No CenterMouse while in MouseZoom mode.
charcontrol->CenterMouse(value);
}
Index: /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/gui/pawsslot.cpp
===================================================================
--- /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/gui/pawsslot.cpp (révision 1769)
+++ /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/gui/pawsslot.cpp (copie de travail)
@@ -86,18 +86,23 @@
psengine->GetMsgHandler()->SendMessage( out.msg );
return true;
}
- else if ( dragDrop && (!empty || psengine->GetSlotManager()->IsDragging()) )
+ else
{
- // Grab one item if shift key are used. Grab everything in the slot
- // if either middle mouse button or ctrl key are used
- mgr->Handle( this, modifiers==1, button==2 || modifiers==2 );
+ bool grab = psengine->GetMouseBinds()->CheckBind("EntityDragDrop", button, modifiers);
+ bool grabAll = psengine->GetMouseBinds()->CheckBind("EntityDragDropAll", button, modifiers);
+ bool grabOne = psengine->GetMouseBinds()->CheckBind("EntityDragDropOne", button, modifiers);
+ if ( dragDrop && (grab || grabAll || grabOne) && (!empty || psengine->GetSlotManager()->IsDragging()) )
+ {
+ // Grab one item if EntityDragDropOne modifiers key are used. Grab everything in the slot
+ // if EntityDragDropAll modifiers key are used
+ mgr->Handle( this, grabOne, grabAll );
return true;
- }
- else if ( parent )
+ }else if ( parent )
return parent->OnButtonPressed(button, modifiers, this);
else
return pawsWidget::OnMouseDown(button, modifiers, x, y );
}
+}
void pawsSlot::SetToolTip( const char* text )
{
Index: /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/gui/psmainwidget.cpp
===================================================================
--- /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/gui/psmainwidget.cpp (révision 1769)
+++ /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/gui/psmainwidget.cpp (copie de travail)
@@ -354,6 +354,11 @@
{
GEMClientObject* over = FindMouseOverObject( x, y );
+ const psControl* mouseLookTrigger = psengine->GetCharControl()->GetTrigger("MouseLook");
+ if(mouseLookTrigger->button==(uint)button && mouseLookTrigger->mods==(uint)keyModifier){
+ psengine->GetCharControl()->GetMovementManager()->MouseLookCanAct(true);
+ }
+
if (psengine->GetMouseBinds()->CheckBind("EntitySelect", button, keyModifier))
{
if ( over )
Index: /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/psmovement.h
===================================================================
--- /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/psmovement.h (révision 1769)
+++ /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/psmovement.h (copie de travail)
@@ -108,6 +108,7 @@
bool autoMove;
bool toggleRun;
bool mouseLook;
+ bool mouseLookCanAct;
bool mouseZoom;
bool mouseMove;
bool sneaking;
@@ -172,6 +173,9 @@
bool GetInvertedMouse() { return invertedMouse; }
void LoadMouseSettings();
+ void MouseLookCanAct(bool v);
+ bool MouseLookCanAct(){ return mouseLookCanAct; }
+
void MouseLook(bool v);
bool MouseLook() { return mouseLook; }
void MouseLook(iEvent& ev);
Index: /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/psmovement.cpp
===================================================================
--- /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/psmovement.cpp (révision 1769)
+++ /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/src/client/psmovement.cpp (copie de travail)
@@ -89,6 +89,7 @@
toggleRun = false;
mouseAutoMove = false;
mouseLook = false;
+ mouseLookCanAct = false;
mouseZoom = false;
mouseMove = false;
sneaking = false;
@@ -599,6 +600,9 @@
SetMouseSensX( v2 );
}
+void psMovementManager::MouseLookCanAct(bool v){
+ mouseLookCanAct = v;
+}
void psMovementManager::MouseLook(bool v)
{
@@ -606,6 +610,9 @@
{
return;
}
+
+ if(mouseLookCanAct || !v)
+ {
mouseLook = v;
psCamera* camera = psengine->GetPSCamera();
if( camera->RotateCameraWithPlayer() )
@@ -620,6 +627,8 @@
}
}
}
+ mouseLookCanAct = false;
+}
void psMovementManager::MouseLook(iEvent& ev)
{
Index: /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/data/gui/configmouse.xml
===================================================================
--- /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/data/gui/configmouse.xml (révision 1769)
+++ /home/thierry/Documents/planesShift/head/planeshift-base/planeshift/data/gui/configmouse.xml (copie de travail)
@@ -18,7 +18,16 @@
+
+
+
+
+
+
+
+
+