When the "-F" command-line parameter is given without "-W" or "-H", it documented as calculating a window size to fill the screen. It seems to make the window a little too large, as the right border is off the desktop. It also doesn't make the screen high enough, since it reserves a hard-coded percentage for the text window, even though the text window doesn't touch the bottom (this is legacy from MSWLogo, which didn't have a split screen mode).
The notion of a "-F" is useful, since it addresses two issues:
1) You don't see the undrawable area when the window is larger than the drawable surface.
2) It prevents the confusion of when the turtle goes off-screen (and you need to scroll the window to find it.
To make -F useful, I propose that:
1) FMSLogo start maximized.
2) That 20% of the screen height be dedicated to the commander.
3) That the screen window be exactly as large as what is initially shown
I agree 100%. This is my main issue also.
I have implemented this in the wxWidgets version 6.35.0. I expect to release this sometime near January 2016.
Implementing this was more difficult than I had anticipated. For one, the maximum width/height changes depending on whether FMSLogo is maximized, as maximized windows don't have frames (which accounts for 8 pixels on my machine). Another reason is that there is special logic when docking and undocking the commander (TEXTSCREEN and SPLITSCREEN) to grow/shrink the window. Finally the commander tries to size itself based on the size that it was put at the last time FMSLogo was run.
The behavior that I ended up with is:
If -F is given and -W and -H are NOT given, then FMSLogo is started maximized (without a frame) and the screen window is sized to take the full width and a good chunk of the height, giving the rest to the commander. If you unmaximize the window, undock the commander, or change the splitter location, you can end up with only part of the screen being visible, or "undrawable" parts being shown. Redocking the commander and re-maximizing will put FMSLogo back into its original state.
If -F is given and -W or -H are also given, then the assumption is that you don't want a full screen experience, you just want to get rid of the scrollbars on the screen. The maximum width possible for the screen is reduced to account for the resizable frame.
This satisfies the requirement as I originally envisioned it: provide a way for someone to run FMSLogo on laptops or widescreen monitors without showing the undrawable part. They do this by changing the desktop shortcut to include "-F". There is weird behavior for TEXTSCREEN, SPLITSCREEN, or unmaximing the window, but if you wanted FMSLogo to be full screen, then you wouldn't do this. And if you did this for some reason, you can "fix" FMSLogo by re-maximizing it.
The new behavior retains the backward compatibility with -F -W -H, as used by Asteroid Miner, as it only affects -F without -W -H. All normal uses (without -F) remain as before.
While implementing this, I found [bugs:#470], but I don't think it significantly affects the -F experience.
Related
Bugs: #470