diff --git a/aegisub/src/video_display.cpp b/aegisub/src/video_display.cpp index 29771e704d3f9f686ce587c42bd1f99f7fd644fc..3be739e5cfb65ccb1c6480a8d304698eca73350b 100644 --- a/aegisub/src/video_display.cpp +++ b/aegisub/src/video_display.cpp @@ -318,8 +318,11 @@ void VideoDisplay::UpdateSize() { if (freeSize) { wxWindow *top = GetParent(); while (!top->IsTopLevel()) top = top->GetParent(); - top->SetSize(top->GetSize() + videoSize - GetClientSize()); - SetClientSize(videoSize); + + wxSize cs = GetClientSize(); + wxSize oldSize = top->GetSize(); + top->SetSize(top->GetSize() + videoSize - cs); + SetClientSize(cs + top->GetSize() - oldSize); } else { SetMinClientSize(videoSize); @@ -378,7 +381,7 @@ void VideoDisplay::OnKeyDown(wxKeyEvent &event) { void VideoDisplay::SetZoom(double value) { zoomValue = std::max(value, .125); - size_t selIndex = value / .125 - 1; + size_t selIndex = zoomValue / .125 - 1; if (selIndex < zoomBox->GetCount()) zoomBox->SetSelection(selIndex); zoomBox->ChangeValue(wxString::Format("%g%%", zoomValue * 100.));