[gtk+] Fix gtk_tree_view_column_cell_get_position()



commit 688d0534362917a4ff171846e9e9cabb250b37c7
Author: Kristian Rietveld <kris gtk org>
Date:   Fri Jan 7 15:10:06 2011 +0100

    Fix gtk_tree_view_column_cell_get_position()

 gtk/gtktreeviewcolumn.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c
index 00a2ea7..612732f 100644
--- a/gtk/gtktreeviewcolumn.c
+++ b/gtk/gtktreeviewcolumn.c
@@ -2972,7 +2972,7 @@ gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column,
 					gint              *width)
 {
   GtkTreeViewColumnPrivate *priv;
-  GdkRectangle zero_cell_area = { 0, };
+  GdkRectangle cell_area;
   GdkRectangle allocation;
 
   g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column), FALSE);
@@ -2980,16 +2980,24 @@ gtk_tree_view_column_cell_get_position (GtkTreeViewColumn *tree_column,
 
   priv = tree_column->priv;
 
-  /* FIXME: Could use a boolean return value for invalid cells */
+  gtk_tree_view_get_background_area (GTK_TREE_VIEW (priv->tree_view),
+                                     NULL, tree_column, &cell_area);
+
   gtk_cell_area_get_cell_allocation (priv->cell_area,
                                      priv->cell_area_context,
                                      priv->tree_view,
                                      cell_renderer,
-                                     &zero_cell_area,
+                                     &cell_area,
                                      &allocation);
 
   if (x_offset)
-    *x_offset = allocation.x;
+    {
+      GdkRectangle button_allocation;
+
+      /* Retrieve column offset */
+      gtk_widget_get_allocation (priv->button, &button_allocation);
+      *x_offset = allocation.x - button_allocation.x;
+    }
   if (width)
     *width = allocation.width;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]