]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/glcanvas.cpp
Applied patch to reenable single selection mode.
[wxWidgets.git] / src / gtk / glcanvas.cpp
index 7cd95d0cab823cad6abaa973ccd401368eca9eeb..30def50299b230e24012f482a069955edb10bbee 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        gtk/glcanvas.cpp
-// Purpose:     wxGLCanvas, for using OpenGL/Mesa with wxWindows and GTK
+// Purpose:     wxGLCanvas, for using OpenGL/Mesa with wxWidgets and GTK
 // Author:      Robert Roebling
 // Modified by:
 // Created:     17/08/98
@@ -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 );