Implemented forceTrueColour in SetBestVisual.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2006-11-17 09:39:06 +00:00
parent 515a31bf65
commit c77eea28f9

View File

@@ -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;