changeset 25779:5da76be14fdd

Fixes a bug in the blist theme where a line appears only under the expander
author Justin Rodriguez <ffdragon@soc.pidgin.im>
date Sat, 30 Aug 2008 01:10:22 +0000
parents 25af9b1994c8
children 6ebabe0841a0
files pidgin/gtkblist.c pidgin/gtkcellrendererexpander.c
diffstat 2 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/pidgin/gtkblist.c	Thu Aug 28 13:25:32 2008 +0000
+++ b/pidgin/gtkblist.c	Sat Aug 30 01:10:22 2008 +0000
@@ -6023,9 +6023,6 @@
 			bgcolor = pidgin_blist_theme_get_collapsed_background_color(theme);
 		else bgcolor = pidgin_blist_theme_get_expanded_background_color(theme);
 
-		if (bgcolor == NULL)
-			bgcolor = &(gtkblist->treeview->style->bg[GTK_STATE_ACTIVE]);
-
 		path = gtk_tree_model_get_path(GTK_TREE_MODEL(gtkblist->treemodel), &iter);
 		expanded = gtk_tree_view_row_expanded(GTK_TREE_VIEW(gtkblist->treeview), path);
 		gtk_tree_path_free(path);
--- a/pidgin/gtkcellrendererexpander.c	Thu Aug 28 13:25:32 2008 +0000
+++ b/pidgin/gtkcellrendererexpander.c	Sat Aug 30 01:10:22 2008 +0000
@@ -228,7 +228,7 @@
 }
 
 
-static void pidgin_cell_renderer_expander_render (GtkCellRenderer *cell,
+static void pidgin_cell_renderer_expander_render(GtkCellRenderer *cell,
 					       GdkWindow       *window,
 					       GtkWidget       *widget,
 					       GdkRectangle    *background_area,
@@ -237,7 +237,7 @@
 					       guint            flags)
 {
 	PidginCellRendererExpander *cellexpander = (PidginCellRendererExpander *) cell;
-	
+	gboolean set;
 	gint width, height;
 	GtkStateType state;
 
@@ -270,7 +270,10 @@
 			    cell_area->x + cell->xpad + (width / 2),
 			    cell_area->y + cell->ypad + (height / 2),
 			    cell->is_expanded ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED);
-	if (cell->is_expanded)
+
+	/* only draw the line if the color isn't set - this prevents a bug where the hline appears only under the expander */
+	g_object_get(cellexpander, "cell-background-set", &set, NULL);
+	if (cell->is_expanded && !set)
 		gtk_paint_hline (widget->style, window, state, NULL, widget, NULL, 0, 
 				 widget->allocation.width, cell_area->y + cell_area->height);
 }