X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b59bea3dd0a8df4eecb61862647572caab49690..70846f0a79c2480ee84118d05f879a13550d95c5:/utils/glcanvas/gtk/glcanvas.cpp?ds=sidebyside diff --git a/utils/glcanvas/gtk/glcanvas.cpp b/utils/glcanvas/gtk/glcanvas.cpp index 811c0fcb80..71d8228192 100644 --- a/utils/glcanvas/gtk/glcanvas.cpp +++ b/utils/glcanvas/gtk/glcanvas.cpp @@ -154,6 +154,26 @@ gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win ) return FALSE; } +//----------------------------------------------------------------------------- +// "map" from m_wxwindow +//----------------------------------------------------------------------------- + +static gint +gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win ) +{ + if (win->m_glContext/* && win->m_exposed*/) + { + wxPaintEvent event( win->GetId() ); + event.SetEventObject( win ); + win->GetEventHandler()->ProcessEvent( event ); + + win->m_exposed = FALSE; + win->GetUpdateRegion().Clear(); + } + + return FALSE; +} + //----------------------------------------------------------------------------- // "expose_event" of m_wxwindow //----------------------------------------------------------------------------- @@ -314,6 +334,9 @@ bool wxGLCanvas::Create( wxWindow *parent, gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize", GTK_SIGNAL_FUNC(gtk_glwindow_realized_callback), (gpointer) this ); + gtk_signal_connect( GTK_OBJECT(m_wxwindow), "map", + GTK_SIGNAL_FUNC(gtk_glwindow_map_callback), (gpointer) this ); + gtk_signal_connect( GTK_OBJECT(m_wxwindow), "expose_event", GTK_SIGNAL_FUNC(gtk_glwindow_expose_callback), (gpointer)this );