rendered paste bodyIndex: /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 @@ <widget factory="pawsSeqTreeNode" name="EntitySelect"> <attr name="type" value="action"/> </widget>+ <widget factory="pawsSeqTreeNode" name="EntityDragDrop">+ <attr name="type" value="action"/> </widget>+ <widget factory="pawsSeqTreeNode" name="EntityDragDropOne">+ <attr name="type" value="action"/>+ </widget>+ <widget factory="pawsSeqTreeNode" name="EntityDragDropAll">+ <attr name="type" value="action"/>+ </widget>+ </widget> <widget factory="pawsWidgetTreeNode"> <nodewidget> <widget factory="pawsTextBox" name="Settings label">