]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/glcanvas.cpp
fixup for last commit
[wxWidgets.git] / src / gtk / glcanvas.cpp
index 6299e9453a9d143004a4be549edf6185927322fc..30def50299b230e24012f482a069955edb10bbee 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/08/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Robert Roebling
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
@@ -160,8 +160,6 @@ wxPalette wxGLContext::CreateDefaultPalette()
 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;
@@ -322,7 +320,7 @@ bool wxGLCanvas::Create( wxWindow *parent,
     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 );
@@ -357,6 +355,9 @@ bool wxGLCanvas::Create( wxWindow *parent,
     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 );