X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f4aa7ec32b0e9181888f1bc9b291bb21d0e16561..8cb1060f1e2f2cbbcaebcc668dccefdd79804662:/src/generic/progdlgg.cpp?ds=sidebyside diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index 7541a816bb..fbb2699e62 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -97,7 +97,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, int maximum, wxWindow *parent, int style) - : wxDialog(parent, wxID_ANY, title), + : wxDialog(GetParentForModalDialog(parent), wxID_ANY, title), m_skip(false), m_delay(3), m_hasAbortButton(false), @@ -141,7 +141,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, wxClientDC dc(this); dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); - long widthText = 0; + wxCoord widthText = 0; dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL); wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL); @@ -261,7 +261,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, sizeDlg.y += 2*LAYOUT_MARGIN; // try to make the dialog not square but rectangular of reasonable width - sizeDlg.x = (wxCoord)wxMax(widthText, 4*sizeDlg.y/3); + sizeDlg.x = (wxCoord)wxMax(widthText*2, 4*sizeDlg.y/3); sizeDlg.x *= 3; sizeDlg.x /= 2; SetClientSize(sizeDlg); @@ -338,12 +338,8 @@ wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip) wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") ); - // fill up the gauge if value == maximum because this means that the dialog - // is going to close and the gauge shouldn't be partly empty in this case - if ( m_gauge && value <= m_maximum ) - { - m_gauge->SetValue(value == m_maximum ? value : value + 1); - } + if ( m_gauge ) + m_gauge->SetValue(value); UpdateMessage(newmsg);