I found that allowhiddenfocus as described in the documentation was not functioning as advertised. In looking at the implementation I found that it was simply not complete; there where two items to address:
(1) the skin xml node attribute (allowhiddenfocus="true") was never read from the skin xml file and stored in the control object
(2) the logic for testing whether or not the control should grab focus (even when not visible, and then forcing visibility) was flawed.
I managed to correct each of these items and tested with some skin development I am working on. I tested with button controls and it appears to work great. I also browsed around the Blue3 skin to smoke test the change. Nothing appears broken... so far.
The patch affects GUIControl.cs and GUIControlFactory.cs in the Core.dll.
(1) the skin xml node attribute (allowhiddenfocus="true") was never read from the skin xml file and stored in the control object
(2) the logic for testing whether or not the control should grab focus (even when not visible, and then forcing visibility) was flawed.
I managed to correct each of these items and tested with some skin development I am working on. I tested with button controls and it appears to work great. I also browsed around the Blue3 skin to smoke test the change. Nothing appears broken... so far.
The patch affects GUIControl.cs and GUIControlFactory.cs in the Core.dll.