Hello Guys,
I have discovered that Irrlicht only allows to changes the focus of the active Gui-Elemet by left-clicking or pressing tab. This is wrong in my Opinion. Because if you do a right-click or a middle-click the Focus is not changing and the mouse-events are passed to the wrong gui-element... I have changed the following line of code in the CGUIEnvironment.cpp to fix this:
CGUIEnvironment.cpp Line 563 -> CGUIEnvironment::postEventFromUser(const SEvent& event)
if ((event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN)||(event.MouseInput.Event == EMIE_MMOUSE_PRESSED_DOWN)||(event.MouseInput.Event == EMIE_RMOUSE_PRESSED_DOWN))
if ( (Hovered && Hovered != Focus) || !Focus )
{
setFocus(Hovered);
}
Not a big Thing, but maybe interesting for future releases...
CGUIEnvironment Focus Behaviour
Re: CGUIEnvironment Focus Behaviour
I fear that's a too big change to make without making it controllable by the user. Focus code in games can get rather complicated (as right-click can be used for a lot more) and so just changing it might mess up existing applications (for example right-click is often used for the camera in games). But I do agree that changing focus with other mouse buttons (middle mouse as well) usually makes sense, so having an option to enable that (and maybe even enable it by default) would indeed be good.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
-
- Posts: 7
- Joined: Fri Jul 20, 2012 2:12 pm
Re: CGUIEnvironment Focus Behaviour
Ok, i have tested this as well and i see no bad effect... I´m allso using mouse keys for camera and an invisible "workspace IGUIWindow" to seperate events by asking for currently hovered guielement. But i agree with you that it is possible that some apps are messed-up by such a big change in the engine... I personally have found this "bug" only because i want to display gueelement-specific contextmenues which shuld open up by right-clicking an elemet... and this is only possible when focus is changing properly .