static gint
gtk_glwindow_realized_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
{
- // VZ: apparently in some cases we're called twice -- no idea why,
- // but a check doesn't hurt
if ( !win->m_glContext )
{
wxGLContext *share = win->m_sharedContext;
wxCHECK_MSG( m_vi, FALSE, _T("required visual couldn't be found") );
GdkVisual *visual = gdkx_visual_get( vi->visualid );
- GdkColormap *colormap = gdk_colormap_new( gdkx_visual_get(vi->visualid), TRUE );
+ GdkColormap *colormap = gdk_colormap_new( visual, TRUE );
gtk_widget_push_colormap( colormap );
gtk_widget_push_visual( visual );
gtk_widget_pop_visual();
gtk_widget_pop_colormap();
+ // if our parent window is already visible, we had been realized before we
+ // connected to the "realize" signal and hence our m_glContext hasn't been
+ // initialized yet and we have to do it now
if (GTK_WIDGET_REALIZED(m_wxwindow))
gtk_glwindow_realized_callback( m_wxwindow, this );