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()
void wxWindowGTK::Update()
{
- 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();
+ 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();
+ // Flush again, but no need to wait for it to finish
+ gdk_display_flush(display);
+ }
}
void wxWindowGTK::GtkUpdate()