diff -r c6e0edef8997 code/nel/src/3d/driver/opengl/unix_event_emitter.cpp --- a/code/nel/src/3d/driver/opengl/unix_event_emitter.cpp Sat Jan 22 17:47:16 2011 +0100 +++ b/code/nel/src/3d/driver/opengl/unix_event_emitter.cpp Sun Jan 23 16:50:51 2011 +0100 @@ -159,9 +158,7 @@ void CUnixEventEmitter::emulateMouseRawMode(bool enable) { - _emulateRawMode = enable; - - if(_emulateRawMode) + if(!_emulateRawMode) { XWindowAttributes xwa; XGetWindowAttributes(_dpy, _win, &xwa); @@ -174,6 +171,7 @@ XEvent event; while(XCheckIfEvent(_dpy, &event, &isMouseMoveEvent, NULL)) { }; } + _emulateRawMode = enable; } #ifndef AltMask diff -r c6e0edef8997 code/ryzom/client/src/events_listener.cpp --- a/code/ryzom/client/src/events_listener.cpp Sat Jan 22 17:47:16 2011 +0100 +++ b/code/ryzom/client/src/events_listener.cpp Sun Jan 23 16:50:51 2011 +0100 @@ -30,7 +30,6 @@ #include "input.h" #include "interface_v3/interface_manager.h" - using namespace NLMISC; extern CActionsManager Actions; // Actions Manager. @@ -263,8 +262,8 @@ if (ClientCfg.FreeLookSmoothingPeriod == 0 || !_MouseSmoothingOn) { - _MouseDeltaAX = x * ClientCfg.FreeLookSpeed; - _MouseDeltaAY = y * ClientCfg.FreeLookSpeed; + _MouseDeltaAX += x * ClientCfg.FreeLookSpeed; + _MouseDeltaAY += y * ClientCfg.FreeLookSpeed; _FreeLookSmoothed = false; } else @@ -307,20 +306,12 @@ { _MouseAngleX = true; } - else - { - _MouseAngleX = false; - } // If mouse pos Y changed. if (fabs(_MouseDeltaAY) > epsilon) { _MouseAngleY = true; } - else - { - _MouseAngleY = false; - } } // *************************************************************** @@ -426,7 +417,9 @@ //--------------------------------------------------- float CEventsListener::getMouseAngleX() { - return _MouseDeltaAX; + float MouseDelta=_MouseDeltaAX; + _MouseDeltaAX=0.f; + return MouseDelta; }// getMouseAngleX // //--------------------------------------------------- @@ -434,7 +427,9 @@ //--------------------------------------------------- float CEventsListener::getMouseAngleY() { - return _MouseDeltaAY; + float MouseDelta=_MouseDeltaAY; + _MouseDeltaAY=0.f; + return MouseDelta; }// getMouseAngleY // // ***************************************************************************