diff --git a/extern/imgui_patched/imgui.cpp b/extern/imgui_patched/imgui.cpp index 20dbcd36f..549536b7b 100644 --- a/extern/imgui_patched/imgui.cpp +++ b/extern/imgui_patched/imgui.cpp @@ -1308,6 +1308,7 @@ ImGuiIO::ImGuiIO() // ScrollText options ScrollTextSpeed = 100.0f; ScrollTextSpacing = 8.0f; + AlwaysScrollText = false; // Miscellaneous options MouseDrawCursor = false; diff --git a/extern/imgui_patched/imgui.h b/extern/imgui_patched/imgui.h index 5624f9024..f64beff3c 100644 --- a/extern/imgui_patched/imgui.h +++ b/extern/imgui_patched/imgui.h @@ -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. diff --git a/extern/imgui_patched/imgui_widgets.cpp b/extern/imgui_patched/imgui_widgets.cpp index baf07ab12..df7fc5d07 100644 --- a/extern/imgui_patched/imgui_widgets.cpp +++ b/extern/imgui_patched/imgui_widgets.cpp @@ -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; } diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 966f13df6..44b722395 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3270,6 +3270,7 @@ void FurnaceGUI::toggleMobileUI(bool enable, bool force) { ImGui::GetIO().IniFilename=NULL; ImGui::GetIO().ConfigFlags|=ImGuiConfigFlags_InertialScrollEnable; ImGui::GetIO().ConfigFlags|=ImGuiConfigFlags_NoHoverColors; + ImGui::GetIO().AlwaysScrollText=true; fileDialog->mobileUI=true; } else { ImGui::GetIO().IniFilename=NULL; @@ -3279,6 +3280,7 @@ void FurnaceGUI::toggleMobileUI(bool enable, bool force) { } ImGui::GetIO().ConfigFlags&=~ImGuiConfigFlags_InertialScrollEnable; ImGui::GetIO().ConfigFlags&=~ImGuiConfigFlags_NoHoverColors; + ImGui::GetIO().AlwaysScrollText=false; fileDialog->mobileUI=false; } }