summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrendererprogress.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2005-06-19 12:44:12 +0000
committerKristian Rietveld <kristian@src.gnome.org>2005-06-19 12:44:12 +0000
commitd4fdc6b7a90482c4eebccbf1a7d1bb19289818fa (patch)
tree4c0fb3b603362d887f1df7a6c39b4063bc833090 /gtk/gtkcellrendererprogress.c
parenta2ea759334b897b194714433a646c288a5c05617 (diff)
downloadgdk-pixbuf-d4fdc6b7a90482c4eebccbf1a7d1bb19289818fa.tar.gz
This commit includes a fix for #169463, Stefan Kost.
2005-06-19 Kristian Rietveld <kris@gtk.org> This commit includes a fix for #169463, Stefan Kost. * gtk/gtkcellrendererprogress.c (gtk_cell_renderer_progress_get_size): when cell_area is set, return cell_area width/height as width/height, so the focus rectangle will be drawn correctly. * gtk/gtktreeview.c (gtk_tree_view_bin_expose): drop unneeded get of focus-line-width property, (validate_row): take focus_line_width into account. * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): also take focus_line_width into account when calculating the cell_area y and height (before, we only took it into account when calculating x and width).
Diffstat (limited to 'gtk/gtkcellrendererprogress.c')
-rw-r--r--gtk/gtkcellrendererprogress.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gtk/gtkcellrendererprogress.c b/gtk/gtkcellrendererprogress.c
index c01bbd2f1..e565b2646 100644
--- a/gtk/gtkcellrendererprogress.c
+++ b/gtk/gtkcellrendererprogress.c
@@ -302,10 +302,23 @@ gtk_cell_renderer_progress_get_size (GtkCellRenderer *cell,
compute_dimensions (cell, widget, cellprogress->priv->label, &w, &h);
if (width)
- *width = MAX (cellprogress->priv->min_w, w);
+ *width = MAX (cellprogress->priv->min_w, w);
if (height)
*height = MIN (cellprogress->priv->min_h, h);
+
+ /* FIXME: at the moment cell_area is only set when we are requesting
+ * the size for drawing the focus rectangle. We now just return
+ * the last size we used for drawing the progress bar, which will
+ * work for now. Not a really nice solution though.
+ */
+ if (cell_area)
+ {
+ if (width)
+ *width = cell_area->width;
+ if (height)
+ *height = cell_area->height;
+ }
}
static void