s0600204 Feb 23 2018, 9:54 PM
- Differential Revision
- D846: Button for quick change between civilization history and structure tree page
- rP21338: Use a macro for creating checkboxes in the Atlas map panel (other panels code…
- Build Status
Buildable 5157 Build 8825: Post-Commit Build Jenkins
"Alt+Shift+S" is a doubled hotkey at the moment (same as structure tree (structree)). So on hit it opens structure tree and toggles silhouttes, which is not a good behaviour.
So I guess we can just take "Alt+S" as its at the moment only assigned to next tab hotkey (hotkey.tab.next) but it is not used in the session gui,
"Alt+S" is also a good hotkey because the Diplomacy Toggle Hotkey is also "Alt+X" and both effecting the silhouttes.
Maybe "Alt+Shift+R" ? Not so far for the fingers ..
Or we change
scroll.speed.decrease from "Ctrl+Shift+S" to "Ctrl+Alt+Shift+S"
and silhouettes to "Ctrl+Shift+S"
Then structure tree hotkey is still one hand grabable (at last for me x) )
Actually the best way would be for me "Alt+S" but bb made that key for tab forward
I'd personally favour a solution where we didn't have to reassign other hotkeys.
The reason I suggested "Alt+Shift+T" was that the letter choice made some sense on some level ("T" for "tree"). (And FWIW it is attainable with one hand for me, although I am aware that some players may not be as dexterous.)
Of course, there's no reason why there has to be a hotkey - the structree is not an essential gameplay mechanic.
I see this belief manifested in msgbox.js, summary.js, civinfo.js, manual.js, options.js, core.js, structree.js where we find this pattern:
if (data.callback) Engine.PopGuiPageCB(i); else Engine.PopGuiPage();
But here the callback is skipped because that happens to fit the pause/resume necessity.
Having the child GUI page able to decide to skip the parent GUI pages callback handler means that the parent GUI page has no chance of being certain that the callback function is called regardless of what the child GUI page computes.
Merging the structree and civinfo page would prevent the problem but not solve it.
This page is inconsistent:
A proponent of civ persistance might propone civ persistance when switching from gamesetup to session.
Missing pauseGame(); and closeOpenDialogs(); calls if we look at menu.js.
Code seems ugly (1) but unimproveable (2):
This page inconsistent:
It might be less confusing to the user, reader, maintainer, extender and UI designer if the button works on all pages the same way.