Instead of hiding the chat window immediately when the game enters a
"cutscene" condition, wait until the vanilla chat would've been hidden.
This prevents hiding and unhiding during auto-skipped cutscenes.
- Avoids overriding modifiers after leaving a vanilla text box. This
would prevent you from holding e.g. Ctrl between multiple vanilla text
boxes.
- Reworks linkshell rotation code to fix issues with LS number gaps
causing linkshell rotation to not function.
- Adds new setting "Enable inactivity hide during battle" (default:
true) which determines whether autohide should apply during battle
(thanks @aurieh)
- Adds new setting "Chat channels considered for activity" which allows
customizing which channels incoming messages must match to "bump" the
inactivity timer
- Adds new per-tab setting "Unhide the chat window on activity" to
configure whether it will be considered for "bumping" the inactivity
timer when receiving messages that match the new channel filter. Note
that the foreground tab is currently always considered.
- Extends autohide code to apply to poped-out tabs as well. Each popout
window has its own inactivity timer, but focusing the main window will
restore all popped out windows.
Co-authored-by: Auri <me@aurieh.me>
Prevents switching channels to a non-existent linkshell index (for both
regular linkshells and cross-world linkshells). ExtraChat linkshells are
already validated separately.
Prevents ChatLogWindow Draw failures from causing ChatTwo to grab input
focus each frame if the exception occurs during an Activate event.