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->Refresh();
|
||||
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()
|
||||
|
@@ -3570,13 +3570,16 @@ void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
|
||||
|
||||
void wxWindowGTK::Update()
|
||||
{
|
||||
if (m_widget)
|
||||
{
|
||||
GdkDisplay* display = gtk_widget_get_display(m_widget);
|
||||
// Flush everything out to the server, and wait for it to finish.
|
||||
// This ensures nothing will overwrite the drawing we are about to do.
|
||||
gdk_display_sync(display);
|
||||
GtkUpdate();
|
||||
|
||||
// when we call Update() we really want to update the window immediately on
|
||||
// screen, even if it means flushing the entire queue and hence slowing down
|
||||
// everything -- but it should still be done, it's just that Update() should
|
||||
// be called very rarely
|
||||
gdk_flush();
|
||||
// Flush again, but no need to wait for it to finish
|
||||
gdk_display_flush(display);
|
||||
}
|
||||
}
|
||||
|
||||
void wxWindowGTK::GtkUpdate()
|
||||
|
Reference in New Issue
Block a user