diff options
author | Owen Taylor <owt1@cornell.edu> | 1998-03-09 06:07:34 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1998-03-09 06:07:34 +0000 |
commit | d894d2dc0c86734920528c7c35d49c0dfb0bf6e5 (patch) | |
tree | f8ac010faed6a6b09cba7f7375e2e048acbc25b9 | |
parent | 2b3f8baf863f2676b450d875817aafa057c1164a (diff) | |
download | gtk+-d894d2dc0c86734920528c7c35d49c0dfb0bf6e5.tar.gz |
No, you can't add a GtkStyle * to a list of GtkRcNode *. (Fixes huge
Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkrc.c: No, you can't add a GtkStyle * to a
list of GtkRcNode *. (Fixes huge performance problem)
Plus, don't bother creating a new style unless style
actually has bg pixmaps.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 7 | ||||
-rw-r--r-- | gtk/gtkrc.c | 31 |
8 files changed, 71 insertions, 9 deletions
@@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 521ce19bab..bcc80ad951 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 521ce19bab..bcc80ad951 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 521ce19bab..bcc80ad951 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 521ce19bab..bcc80ad951 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 521ce19bab..bcc80ad951 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 521ce19bab..bcc80ad951 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Mon Mar 9 01:01:41 1998 Owen Taylor <owt1@cornell.edu> + + * gtk/gtkrc.c: No, you can't add a GtkStyle * to a + list of GtkRcNode *. (Fixes huge performance problem) + Plus, don't bother creating a new style unless style + actually has bg pixmaps. + Sun Mar 8 15:53:33 1998 Owen Taylor <owt1@cornell.edu> * gtk/gtktext.c: diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index d09201e39d..21cb92eb37 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -483,26 +483,44 @@ static GtkStyle * gtk_rc_style_init (GtkRcStyle *rc_style, GdkColormap *cmap) { GdkFont *old_font; + gboolean match_cmap = FALSE; gint i; GList *tmp_list; GtkStyle *style = NULL; + GtkRcNode *node; tmp_list = rc_style->styles; + for (i=0; i<5; i++) + if (rc_style->bg_pixmap_name[i]) + match_cmap = TRUE; + while (tmp_list) { - GtkRcNode *node = (GtkRcNode *)tmp_list->data; + node = (GtkRcNode *)tmp_list->data; - if (node->cmap == cmap) - style = node->style; + if (!match_cmap || (node->cmap == cmap)) + { + style = node->style; + break; + } tmp_list = tmp_list->next; } if (!style) { + node = g_new (GtkRcNode, 1); style = gtk_style_copy (rc_style->proto_style); + + /* FIXME, this leaks colormaps, but if we don't do this, then we'll + * be screwed, because we identify colormaps by address equality + */ + gdk_colormap_ref (cmap); + + node->style = style; + node->cmap = cmap; if (rc_style->fontset_name) { @@ -536,12 +554,7 @@ gtk_rc_style_init (GtkRcStyle *rc_style, GdkColormap *cmap) rc_style->bg_pixmap_name[i]); } - rc_style->styles = g_list_append (rc_style->styles, style); - - /* FIXME, this leaks colormaps, but if we don't do this, then we'll - * be screwed, because we identify colormaps by address equality - */ - gdk_colormap_ref (cmap); + rc_style->styles = g_list_append (rc_style->styles, node); } return style; |