diff --git a/src/base_grid.cpp b/src/base_grid.cpp index 5d8bf17ee..f3c236196 100644 --- a/src/base_grid.cpp +++ b/src/base_grid.cpp @@ -130,14 +130,10 @@ void BaseGrid::OnSubtitlesCommit(int type) { if (type == AssFile::COMMIT_NEW || type & AssFile::COMMIT_ORDER || type & AssFile::COMMIT_DIAG_ADDREM) UpdateMaps(); - if (type & AssFile::COMMIT_DIAG_META) { + if (type & AssFile::COMMIT_DIAG_META || type & AssFile::COMMIT_DIAG_TIME) { SetColumnWidths(); Refresh(false); - return; - } - if (type & AssFile::COMMIT_DIAG_TIME) - Refresh(false); - else if (type & AssFile::COMMIT_DIAG_TEXT) { + } else if (type & AssFile::COMMIT_DIAG_TEXT) { for (auto const& rect : text_refresh_rects) RefreshRect(rect, false); } diff --git a/src/grid_column.cpp b/src/grid_column.cpp index 321a09439..aff198513 100644 --- a/src/grid_column.cpp +++ b/src/grid_column.cpp @@ -158,10 +158,10 @@ struct GridColumnStartTime final : GridColumnTime { } int Width(const agi::Context *c, WidthHelper &helper) const override { + agi::Time max_time = max_value(&AssDialogue::Start, c->ass->Events); if (!by_frame) - return helper(wxS("0:00:00.00")); - int frame = c->videoController->FrameAtTime(max_value(&AssDialogue::Start, c->ass->Events), agi::vfr::START); - return helper(std::to_wstring(frame)); + return helper(max_time.GetAssFormatted()); + return helper(std::to_wstring(c->videoController->FrameAtTime(max_time, agi::vfr::START))); } }; @@ -176,10 +176,10 @@ struct GridColumnEndTime final : GridColumnTime { } int Width(const agi::Context *c, WidthHelper &helper) const override { + agi::Time max_time = max_value(&AssDialogue::End, c->ass->Events); if (!by_frame) - return helper(wxS("0:00:00.00")); - int frame = c->videoController->FrameAtTime(max_value(&AssDialogue::End, c->ass->Events), agi::vfr::END); - return helper(std::to_wstring(frame)); + return helper(max_time.GetAssFormatted()); + return helper(std::to_wstring(c->videoController->FrameAtTime(max_time, agi::vfr::END))); } };