jdmonin / JSettlers2

Java Settlers project home, downloads, and GPLv3 source code. To download the latest version as a JAR, see https://github.com/jdmonin/JSettlers2/releases/latest .
http://nand.net/jsettlers/
GNU General Public License v3.0
160 stars 63 forks source link

Infinite recursion when showing face chooser. #117

Open lpassey opened 2 months ago

lpassey commented 2 months ago

Some of those I play with have complained that they cannot choose a game face. I have encountered this myself on my Windows 11 desktop. Apparently, when the size of the face chooser container (FaceChooserFrame::FaceChooserList) is larger than the available space in the parent FaceChooserFrame it triggers a branch "tooSmall" which is supposed to alter the container size, but which doesn't. The code then triggers doLayout(), which does the size check again, and so on. The solution is to adjust the "wantedSize" Dimension instance to prevent the second and subsequent failures. Increasing the initial size of the parent frame is also desirable.

I have encountered this problem on my Dell desktop (Windows 11), my Lenovo laptop (Windows 11), but not on my HP Pavilion laptop (Ubuntu Linux) or on my wife's Dell laptop (Windows 7). I suspect that on the older systems the size difference test never fails.

Pull request follows.