fix: remove one-frame blank on virtual scrolls
This commit is contained in:
+18
-8
@@ -473,30 +473,40 @@ internal sealed class ChatLog : IUiComponent {
|
|||||||
message.IsVisible = false;
|
message.IsVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// go to next row
|
||||||
|
if (table) {
|
||||||
|
ImGui.TableNextColumn();
|
||||||
|
}
|
||||||
|
|
||||||
// message has rendered once
|
// message has rendered once
|
||||||
if (message.Height.HasValue) {
|
if (message.Height.HasValue) {
|
||||||
// message isn't visible, so render dummy
|
// message isn't visible, so render dummy
|
||||||
if (!message.IsVisible) {
|
if (!message.IsVisible) {
|
||||||
// skip columns
|
var beforeDummy = ImGui.GetCursorPos();
|
||||||
if (table) {
|
|
||||||
if (tab.DisplayTimestamp) {
|
|
||||||
ImGui.TableNextColumn();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (table) {
|
||||||
|
// skip to the message column for vis test
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui.Dummy(new Vector2(1f, message.Height.Value));
|
ImGui.Dummy(new Vector2(10f, message.Height.Value));
|
||||||
message.IsVisible = ImGui.IsItemVisible();
|
message.IsVisible = ImGui.IsItemVisible();
|
||||||
|
|
||||||
goto UpdateMessage;
|
if (message.IsVisible) {
|
||||||
|
if (table) {
|
||||||
|
ImGui.TableSetColumnIndex(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui.SetCursorPos(beforeDummy);
|
||||||
|
} else {
|
||||||
|
goto UpdateMessage;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab.DisplayTimestamp) {
|
if (tab.DisplayTimestamp) {
|
||||||
var timestamp = message.Date.ToLocalTime().ToString("t");
|
var timestamp = message.Date.ToLocalTime().ToString("t");
|
||||||
if (table) {
|
if (table) {
|
||||||
ImGui.TableNextColumn();
|
|
||||||
ImGui.TextUnformatted(timestamp);
|
ImGui.TextUnformatted(timestamp);
|
||||||
} else {
|
} else {
|
||||||
this.DrawChunk(new TextChunk(null, null, $"[{timestamp}]") {
|
this.DrawChunk(new TextChunk(null, null, $"[{timestamp}]") {
|
||||||
|
|||||||
Reference in New Issue
Block a user