GUI: always scroll scrolltexts on mobile

This commit is contained in:
tildearrow 2024-11-10 04:56:41 -05:00
parent b701f06a98
commit 39a5408e4e
4 changed files with 7 additions and 3 deletions

View file

@ -1308,6 +1308,7 @@ ImGuiIO::ImGuiIO()
// ScrollText options
ScrollTextSpeed = 100.0f;
ScrollTextSpacing = 8.0f;
AlwaysScrollText = false;
// Miscellaneous options
MouseDrawCursor = false;

View file

@ -2099,6 +2099,7 @@ struct ImGuiIO
// ScrollText options
float ScrollTextSpeed; // = 100.0f;
float ScrollTextSpacing; // = 8.0f;
bool AlwaysScrollText; // = false // Always scroll scroll texts
// Miscellaneous options
bool MouseDrawCursor; // = false // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations.

View file

@ -563,12 +563,12 @@ void ImGui::ScrollText(ImGuiID id, const char* text, const ImVec2& pos, ImVec2 s
float textPos=storage->GetFloat(id,0.0f);
dl->PushClipRect(minArea,maxArea,true);
if (hovered || alwaysScroll) {
if (hovered || alwaysScroll || g.IO.AlwaysScrollText) {
minArea.x-=textPos;
}
dl->AddText(minArea,ImGui::GetColorU32(ImGuiCol_Text),text);
if ((hovered || alwaysScroll) && !mustNotScroll) {
textPos+=ImGui::GetIO().DeltaTime*g.IO.ScrollTextSpeed;
if ((hovered || alwaysScroll || g.IO.AlwaysScrollText) && !mustNotScroll) {
textPos+=g.IO.DeltaTime*g.IO.ScrollTextSpeed;
if (textPos>textSize.x) {
textPos-=textSize.x+size.x+g.IO.ScrollTextSpacing;
}