Removed crashes when not using themes.

Removed much flicker form tree ctrl and list ctrl.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2000-01-04 22:56:58 +00:00
parent 64d78265d0
commit e6527f9dd4
9 changed files with 80 additions and 36 deletions

View File

@@ -398,7 +398,16 @@ static GdkFont *GtkGetDefaultGuiFont()
{
GtkWidget *widget = gtk_button_new();
GtkStyle *def = gtk_rc_get_style( widget );
g_systemDefaultGuiFont = gdk_font_ref( def->font );
if (def)
{
g_systemDefaultGuiFont = gdk_font_ref( def->font );
}
else
{
def = gtk_widget_get_default_style();
if (def)
g_systemDefaultGuiFont = gdk_font_ref( def->font );
}
gtk_widget_destroy( widget );
}
return g_systemDefaultGuiFont;
@@ -428,7 +437,7 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
{
font = GtkGetDefaultGuiFont();
}
else
if (!font)
{
font = wxLoadQueryNearestFont( point_scale,
M_FONTDATA->m_family,

View File

@@ -128,23 +128,29 @@ wxColour wxSystemSettings::GetSystemColour( int index )
{
if (!g_systemHighlightColour)
{
/*
g_systemHighlightColour =
new wxColour( 0 >> SHIFT,
0 >> SHIFT,
0x9c40 >> SHIFT );
*/
GtkWidget *widget = gtk_button_new();
GtkStyle *def = gtk_rc_get_style( widget );
int red = def->bg[GTK_STATE_SELECTED].red;
int green = def->bg[GTK_STATE_SELECTED].green;
int blue = def->bg[GTK_STATE_SELECTED].blue;
if (!def)
def = gtk_widget_get_default_style();
if (def)
{
int red = def->bg[GTK_STATE_SELECTED].red;
int green = def->bg[GTK_STATE_SELECTED].green;
int blue = def->bg[GTK_STATE_SELECTED].blue;
g_systemHighlightColour =
new wxColour( red >> SHIFT,
green >> SHIFT,
blue >> SHIFT );
}
else
{
g_systemHighlightColour =
new wxColour( 0 >> SHIFT,
0 >> SHIFT,
0x9c40 >> SHIFT );
}
gtk_widget_destroy( widget );
g_systemHighlightColour =
new wxColour( red >> SHIFT,
green >> SHIFT,
blue >> SHIFT );
}
return *g_systemHighlightColour;
}

View File

@@ -2962,7 +2962,12 @@ GtkStyle *wxWindow::GetWidgetStyle()
{
if (m_widgetStyle) gtk_style_unref( m_widgetStyle );
m_widgetStyle = gtk_style_copy( gtk_rc_get_style( m_widget ) );
GtkStyle *def = gtk_rc_get_style( m_widget );
if (!def)
def = gtk_widget_get_default_style();
m_widgetStyle = gtk_style_copy( def );
return m_widgetStyle;
}