fix drawing from Update() being overwritten, fixes wxBusyInfo not drawing properly without wxYield
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -124,14 +124,6 @@ wxBusyInfo::wxBusyInfo(const wxString& message, wxWindow *parent)
|
|||||||
m_InfoFrame->Show(true);
|
m_InfoFrame->Show(true);
|
||||||
m_InfoFrame->Refresh();
|
m_InfoFrame->Refresh();
|
||||||
m_InfoFrame->Update();
|
m_InfoFrame->Update();
|
||||||
|
|
||||||
#ifdef __WXGTK20__
|
|
||||||
// FIXME: this is pretty bad, as any call to Yield(), but without it, the
|
|
||||||
// static text is never shown and neither gdk_display_flush() nor
|
|
||||||
// gdk_display_sync() nor gdk_window_process_updates() helps
|
|
||||||
wxMilliSleep(100);
|
|
||||||
wxYield();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxBusyInfo::~wxBusyInfo()
|
wxBusyInfo::~wxBusyInfo()
|
||||||
|
@@ -3570,13 +3570,16 @@ void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
|
|||||||
|
|
||||||
void wxWindowGTK::Update()
|
void wxWindowGTK::Update()
|
||||||
{
|
{
|
||||||
GtkUpdate();
|
if (m_widget)
|
||||||
|
{
|
||||||
// when we call Update() we really want to update the window immediately on
|
GdkDisplay* display = gtk_widget_get_display(m_widget);
|
||||||
// screen, even if it means flushing the entire queue and hence slowing down
|
// Flush everything out to the server, and wait for it to finish.
|
||||||
// everything -- but it should still be done, it's just that Update() should
|
// This ensures nothing will overwrite the drawing we are about to do.
|
||||||
// be called very rarely
|
gdk_display_sync(display);
|
||||||
gdk_flush();
|
GtkUpdate();
|
||||||
|
// Flush again, but no need to wait for it to finish
|
||||||
|
gdk_display_flush(display);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowGTK::GtkUpdate()
|
void wxWindowGTK::GtkUpdate()
|
||||||
|
Reference in New Issue
Block a user