mirror of
https://github.com/minetest/irrlicht.git
synced 2025-07-06 10:10:25 +02:00
Bugfix: FPS camera animator on X11 no longer tries grabbing mouse events.
Basically behavior about that is back to how it was in Irrlicht 1.8 - not perfect, but useable. So window still jumps a bit when dragging toolbar, but no longer outside the sreen. And it's possible again to alt+tab to other windows. The problem was caused by a combination of FPS camera changes and that we stopped doing mouse-coordinate clipping in the Linux device in r5593. Basically that clipping had the side-effect that the fps-camera never considered a mouse "outside" on Linux. Now on Linux we only update after we get a mouse-event (which we still get when the mouse is outside the window). On Windows we still grab the mouse in the camera, thought that's likely _not_ the best way to do that. Windows has some mouse-grabbing support, and I suppose we could use that (or camera should check if that is used as it also can be set by users I think). So maybe in future this can be further improved. Other operating systems (OSX) should behave like in 1.8 I hope, but as usual I can't test. Also did a few minor cleanups in the camera. - Back to using animateNode time instead of real-time. That's because that was not causing the problems I thought back then it might cause as time is only used for keyboard input and not mouse input. - Moved updating CursorPos to the rest of the code checking CursorControl Note: A future improvement would be to add support for systems without CursorControl object (could still use mouse-events to get it working usually). git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6142 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
@ -114,6 +114,7 @@ namespace scene
|
||||
void allKeysUp();
|
||||
|
||||
gui::ICursorControl *CursorControl;
|
||||
bool GrabMouse;
|
||||
|
||||
f32 MaxVerticalAngle;
|
||||
bool NoVerticalMovement;
|
||||
@ -129,6 +130,7 @@ namespace scene
|
||||
|
||||
core::array<SKeyMap> KeyMap;
|
||||
core::position2d<f32> CenterCursor, CursorPos;
|
||||
bool HadMouseEvent;
|
||||
|
||||
bool CursorKeys[EKA_COUNT];
|
||||
|
||||
|
Reference in New Issue
Block a user