From: Robert Roebling Date: Fri, 17 Nov 2006 09:39:06 +0000 (+0000) Subject: Implemented forceTrueColour in SetBestVisual. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c77eea28f955e9c5e59d952594ccc5e96de1597e Implemented forceTrueColour in SetBestVisual. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp index 4d398e896d..d78d893db2 100644 --- a/src/gtk/app.cpp +++ b/src/gtk/app.cpp @@ -431,24 +431,38 @@ bool wxApp::OnInitGui() // chosen a specific visual, then derive the GdkVisual from that if (m_glVisualInfo != NULL) { - // seems gtk_widget_set_default_visual no longer exists? GdkVisual* vis = gtk_widget_get_default_visual(); GdkColormap *colormap = gdk_colormap_new( vis, FALSE ); gtk_widget_set_default_colormap( colormap ); } - - // On some machines, the default visual is just 256 colours, so - // we make sure we get the best. This can sometimes be wasteful. - else - if ((gdk_visual_get_best() != gdk_visual_get_system()) && (m_useBestVisual)) { - /* seems gtk_widget_set_default_visual no longer exists? */ - GdkVisual* vis = gtk_widget_get_default_visual(); - - GdkColormap *colormap = gdk_colormap_new( vis, FALSE ); - gtk_widget_set_default_colormap( colormap ); + // On some machines, the default visual is just 256 colours, so + // we make sure we get the best. This can sometimes be wasteful. + if (m_useBestVisual) + { + if (m_forceTrueColour) + { + GdkVisual* visual = gdk_visual_get_best_with_both( 24, GDK_VISUAL_TRUE_COLOR ); + if (!visual) + { + wxLogError(wxT("Unable to initialize TrueColor visual.")); + return false; + } + GdkColormap *colormap = gdk_colormap_new( visual, FALSE ); + gtk_widget_set_default_colormap( colormap ); + } + else + { + if (gdk_visual_get_best() != gdk_visual_get_system()) + { + GdkVisual* visual = gdk_visual_get_best(); + GdkColormap *colormap = gdk_colormap_new( visual, FALSE ); + gtk_widget_set_default_colormap( colormap ); + } + } + } } return true;