summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2003-11-18 19:02:30 +0000
committerKristian Rietveld <kristian@src.gnome.org>2003-11-18 19:02:30 +0000
commite9154691d18a3297732cb12f8395b56aa7d92795 (patch)
tree2856520e7b5e3fbe297947509d6a29e6a84cb9c2
parent7ea41146e9523cdce957ef9f1f850a4af31ab062 (diff)
downloadgdk-pixbuf-e9154691d18a3297732cb12f8395b56aa7d92795.tar.gz
Fixes based on comments from Owen Taylor, #125264.
Tue Nov 18 19:47:59 2003 Kristian Rietveld <kris@gtk.org> Fixes based on comments from Owen Taylor, #125264. * gtk/gtkcellview.[ch] (gtk_cell_view_finalize): remove unused variable, (gtk_cell_view_set_value), (gtk_cell_view_set_displayed_model): queue a resize, (gtk_cell_view_get_size_of_row): new function, (gtk_cell_view_set_value), (gtk_cell_view_set_valuesv), (gtk_cell_view_set_values), (gtk_cell_view_set_model), (gtk_cell_view_set_displayed_row), (gtk_cell_view_get_displayed_row): s/cellview/cell_view/ in the function definitions, so they match with the header file. * gtk/gtkcombobox.c (gtk_combo_box_remeasure): remove the resize flag again (:, and use gtk_cell_view_get_size_of_row instead of the measurer, remove _set_size_request call, (gtk_combo_box_calc_requested_width): use gtk_cell_view_get_size_of_row instead of the measurer, (gtk_combo_box_style_set): queue a resize, (gtk_combo_box_size_request): update of _remeasure call, (gtk_combo_box_init), (gtk_combo_box_cell_layout_pack_start), (gtk_combo_box_cell_layout_pack_end), (gtk_combo_box_cell_layout_clear), (gtk_combo_box_set_model): get rid of the measurer, (gtk_combo_box_cell_layout_add_attribute), (gtk_combo_box_cell_layout_set_cell_data_func), (gtk_combo_box_cell_layout_clear_attributes): ditto and queue a resize instead of calling _remeasure.
-rw-r--r--ChangeLog31
-rw-r--r--ChangeLog.pre-2-1031
-rw-r--r--ChangeLog.pre-2-431
-rw-r--r--ChangeLog.pre-2-631
-rw-r--r--ChangeLog.pre-2-831
-rw-r--r--gtk/gtkcellview.c95
-rw-r--r--gtk/gtkcellview.h3
-rw-r--r--gtk/gtkcombobox.c84
8 files changed, 249 insertions, 88 deletions
diff --git a/ChangeLog b/ChangeLog
index 3ee6f7f55..7dc47252b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+Tue Nov 18 19:47:59 2003 Kristian Rietveld <kris@gtk.org>
+
+ Fixes based on comments from Owen Taylor, #125264.
+
+ * gtk/gtkcellview.[ch] (gtk_cell_view_finalize): remove unused
+ variable,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_displayed_model): queue
+ a resize,
+ (gtk_cell_view_get_size_of_row): new function,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_valuesv),
+ (gtk_cell_view_set_values), (gtk_cell_view_set_model),
+ (gtk_cell_view_set_displayed_row), (gtk_cell_view_get_displayed_row):
+ s/cellview/cell_view/ in the function definitions, so they match
+ with the header file.
+
+ * gtk/gtkcombobox.c (gtk_combo_box_remeasure): remove the resize
+ flag again (:, and use gtk_cell_view_get_size_of_row instead of
+ the measurer, remove _set_size_request call,
+ (gtk_combo_box_calc_requested_width): use gtk_cell_view_get_size_of_row
+ instead of the measurer,
+ (gtk_combo_box_style_set): queue a resize,
+ (gtk_combo_box_size_request): update of _remeasure call,
+ (gtk_combo_box_init), (gtk_combo_box_cell_layout_pack_start),
+ (gtk_combo_box_cell_layout_pack_end),
+ (gtk_combo_box_cell_layout_clear),
+ (gtk_combo_box_set_model): get rid of the measurer,
+ (gtk_combo_box_cell_layout_add_attribute),
+ (gtk_combo_box_cell_layout_set_cell_data_func),
+ (gtk_combo_box_cell_layout_clear_attributes): ditto and queue a
+ resize instead of calling _remeasure.
+
Mon Nov 17 16:25:04 2003 Manish Singh <yosh@gimp.org>
* gdk-pixbuf/Makefile.am
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 3ee6f7f55..7dc47252b 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,34 @@
+Tue Nov 18 19:47:59 2003 Kristian Rietveld <kris@gtk.org>
+
+ Fixes based on comments from Owen Taylor, #125264.
+
+ * gtk/gtkcellview.[ch] (gtk_cell_view_finalize): remove unused
+ variable,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_displayed_model): queue
+ a resize,
+ (gtk_cell_view_get_size_of_row): new function,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_valuesv),
+ (gtk_cell_view_set_values), (gtk_cell_view_set_model),
+ (gtk_cell_view_set_displayed_row), (gtk_cell_view_get_displayed_row):
+ s/cellview/cell_view/ in the function definitions, so they match
+ with the header file.
+
+ * gtk/gtkcombobox.c (gtk_combo_box_remeasure): remove the resize
+ flag again (:, and use gtk_cell_view_get_size_of_row instead of
+ the measurer, remove _set_size_request call,
+ (gtk_combo_box_calc_requested_width): use gtk_cell_view_get_size_of_row
+ instead of the measurer,
+ (gtk_combo_box_style_set): queue a resize,
+ (gtk_combo_box_size_request): update of _remeasure call,
+ (gtk_combo_box_init), (gtk_combo_box_cell_layout_pack_start),
+ (gtk_combo_box_cell_layout_pack_end),
+ (gtk_combo_box_cell_layout_clear),
+ (gtk_combo_box_set_model): get rid of the measurer,
+ (gtk_combo_box_cell_layout_add_attribute),
+ (gtk_combo_box_cell_layout_set_cell_data_func),
+ (gtk_combo_box_cell_layout_clear_attributes): ditto and queue a
+ resize instead of calling _remeasure.
+
Mon Nov 17 16:25:04 2003 Manish Singh <yosh@gimp.org>
* gdk-pixbuf/Makefile.am
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index 3ee6f7f55..7dc47252b 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,34 @@
+Tue Nov 18 19:47:59 2003 Kristian Rietveld <kris@gtk.org>
+
+ Fixes based on comments from Owen Taylor, #125264.
+
+ * gtk/gtkcellview.[ch] (gtk_cell_view_finalize): remove unused
+ variable,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_displayed_model): queue
+ a resize,
+ (gtk_cell_view_get_size_of_row): new function,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_valuesv),
+ (gtk_cell_view_set_values), (gtk_cell_view_set_model),
+ (gtk_cell_view_set_displayed_row), (gtk_cell_view_get_displayed_row):
+ s/cellview/cell_view/ in the function definitions, so they match
+ with the header file.
+
+ * gtk/gtkcombobox.c (gtk_combo_box_remeasure): remove the resize
+ flag again (:, and use gtk_cell_view_get_size_of_row instead of
+ the measurer, remove _set_size_request call,
+ (gtk_combo_box_calc_requested_width): use gtk_cell_view_get_size_of_row
+ instead of the measurer,
+ (gtk_combo_box_style_set): queue a resize,
+ (gtk_combo_box_size_request): update of _remeasure call,
+ (gtk_combo_box_init), (gtk_combo_box_cell_layout_pack_start),
+ (gtk_combo_box_cell_layout_pack_end),
+ (gtk_combo_box_cell_layout_clear),
+ (gtk_combo_box_set_model): get rid of the measurer,
+ (gtk_combo_box_cell_layout_add_attribute),
+ (gtk_combo_box_cell_layout_set_cell_data_func),
+ (gtk_combo_box_cell_layout_clear_attributes): ditto and queue a
+ resize instead of calling _remeasure.
+
Mon Nov 17 16:25:04 2003 Manish Singh <yosh@gimp.org>
* gdk-pixbuf/Makefile.am
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index 3ee6f7f55..7dc47252b 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,34 @@
+Tue Nov 18 19:47:59 2003 Kristian Rietveld <kris@gtk.org>
+
+ Fixes based on comments from Owen Taylor, #125264.
+
+ * gtk/gtkcellview.[ch] (gtk_cell_view_finalize): remove unused
+ variable,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_displayed_model): queue
+ a resize,
+ (gtk_cell_view_get_size_of_row): new function,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_valuesv),
+ (gtk_cell_view_set_values), (gtk_cell_view_set_model),
+ (gtk_cell_view_set_displayed_row), (gtk_cell_view_get_displayed_row):
+ s/cellview/cell_view/ in the function definitions, so they match
+ with the header file.
+
+ * gtk/gtkcombobox.c (gtk_combo_box_remeasure): remove the resize
+ flag again (:, and use gtk_cell_view_get_size_of_row instead of
+ the measurer, remove _set_size_request call,
+ (gtk_combo_box_calc_requested_width): use gtk_cell_view_get_size_of_row
+ instead of the measurer,
+ (gtk_combo_box_style_set): queue a resize,
+ (gtk_combo_box_size_request): update of _remeasure call,
+ (gtk_combo_box_init), (gtk_combo_box_cell_layout_pack_start),
+ (gtk_combo_box_cell_layout_pack_end),
+ (gtk_combo_box_cell_layout_clear),
+ (gtk_combo_box_set_model): get rid of the measurer,
+ (gtk_combo_box_cell_layout_add_attribute),
+ (gtk_combo_box_cell_layout_set_cell_data_func),
+ (gtk_combo_box_cell_layout_clear_attributes): ditto and queue a
+ resize instead of calling _remeasure.
+
Mon Nov 17 16:25:04 2003 Manish Singh <yosh@gimp.org>
* gdk-pixbuf/Makefile.am
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index 3ee6f7f55..7dc47252b 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,34 @@
+Tue Nov 18 19:47:59 2003 Kristian Rietveld <kris@gtk.org>
+
+ Fixes based on comments from Owen Taylor, #125264.
+
+ * gtk/gtkcellview.[ch] (gtk_cell_view_finalize): remove unused
+ variable,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_displayed_model): queue
+ a resize,
+ (gtk_cell_view_get_size_of_row): new function,
+ (gtk_cell_view_set_value), (gtk_cell_view_set_valuesv),
+ (gtk_cell_view_set_values), (gtk_cell_view_set_model),
+ (gtk_cell_view_set_displayed_row), (gtk_cell_view_get_displayed_row):
+ s/cellview/cell_view/ in the function definitions, so they match
+ with the header file.
+
+ * gtk/gtkcombobox.c (gtk_combo_box_remeasure): remove the resize
+ flag again (:, and use gtk_cell_view_get_size_of_row instead of
+ the measurer, remove _set_size_request call,
+ (gtk_combo_box_calc_requested_width): use gtk_cell_view_get_size_of_row
+ instead of the measurer,
+ (gtk_combo_box_style_set): queue a resize,
+ (gtk_combo_box_size_request): update of _remeasure call,
+ (gtk_combo_box_init), (gtk_combo_box_cell_layout_pack_start),
+ (gtk_combo_box_cell_layout_pack_end),
+ (gtk_combo_box_cell_layout_clear),
+ (gtk_combo_box_set_model): get rid of the measurer,
+ (gtk_combo_box_cell_layout_add_attribute),
+ (gtk_combo_box_cell_layout_set_cell_data_func),
+ (gtk_combo_box_cell_layout_clear_attributes): ditto and queue a
+ resize instead of calling _remeasure.
+
Mon Nov 17 16:25:04 2003 Manish Singh <yosh@gimp.org>
* gdk-pixbuf/Makefile.am
diff --git a/gtk/gtkcellview.c b/gtk/gtkcellview.c
index 1dd8ff644..42e8fe50d 100644
--- a/gtk/gtkcellview.c
+++ b/gtk/gtkcellview.c
@@ -287,8 +287,6 @@ gtk_cell_view_style_set (GtkWidget *widget,
static void
gtk_cell_view_finalize (GObject *object)
{
- GtkCellView *cellview = GTK_CELL_VIEW (object);
-
gtk_cell_view_cell_layout_clear (GTK_CELL_LAYOUT (object));
if (G_OBJECT_CLASS (parent_class)->finalize)
@@ -765,22 +763,23 @@ gtk_cell_view_new_with_pixbuf (GdkPixbuf *pixbuf)
}
void
-gtk_cell_view_set_value (GtkCellView *cellview,
+gtk_cell_view_set_value (GtkCellView *cell_view,
GtkCellRenderer *renderer,
gchar *property,
GValue *value)
{
- g_return_if_fail (GTK_IS_CELL_VIEW (cellview));
+ g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
g_object_set_property (G_OBJECT (renderer), property, value);
- /* force redraw */
- gtk_widget_queue_draw (GTK_WIDGET (cellview));
+ /* force resize and redraw */
+ gtk_widget_queue_resize (GTK_WIDGET (cell_view));
+ gtk_widget_queue_draw (GTK_WIDGET (cell_view));
}
static void
-gtk_cell_view_set_valuesv (GtkCellView *cellview,
+gtk_cell_view_set_valuesv (GtkCellView *cell_view,
GtkCellRenderer *renderer,
va_list args)
{
@@ -792,77 +791,101 @@ gtk_cell_view_set_valuesv (GtkCellView *cellview,
while (attribute)
{
value = va_arg (args, GValue *);
- gtk_cell_view_set_value (cellview, renderer, attribute, value);
+ gtk_cell_view_set_value (cell_view, renderer, attribute, value);
attribute = va_arg (args, gchar *);
}
}
void
-gtk_cell_view_set_values (GtkCellView *cellview,
+gtk_cell_view_set_values (GtkCellView *cell_view,
GtkCellRenderer *renderer,
...)
{
va_list args;
- g_return_if_fail (GTK_IS_CELL_VIEW (cellview));
+ g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
- g_return_if_fail (gtk_cell_view_get_cell_info (cellview, renderer));
+ g_return_if_fail (gtk_cell_view_get_cell_info (cell_view, renderer));
va_start (args, renderer);
- gtk_cell_view_set_valuesv (cellview, renderer, args);
+ gtk_cell_view_set_valuesv (cell_view, renderer, args);
va_end (args);
}
void
-gtk_cell_view_set_model (GtkCellView *cellview,
+gtk_cell_view_set_model (GtkCellView *cell_view,
GtkTreeModel *model)
{
- g_return_if_fail (GTK_IS_CELL_VIEW (cellview));
+ g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
g_return_if_fail (GTK_IS_TREE_MODEL (model));
- if (cellview->priv->model)
+ if (cell_view->priv->model)
{
- if (cellview->priv->displayed_row)
- gtk_tree_row_reference_free (cellview->priv->displayed_row);
- cellview->priv->displayed_row = NULL;
+ if (cell_view->priv->displayed_row)
+ gtk_tree_row_reference_free (cell_view->priv->displayed_row);
+ cell_view->priv->displayed_row = NULL;
- g_object_unref (G_OBJECT (cellview->priv->model));
- cellview->priv->model = NULL;
+ g_object_unref (G_OBJECT (cell_view->priv->model));
+ cell_view->priv->model = NULL;
}
- cellview->priv->model = model;
+ cell_view->priv->model = model;
- if (cellview->priv->model)
- g_object_ref (G_OBJECT (cellview->priv->model));
+ if (cell_view->priv->model)
+ g_object_ref (G_OBJECT (cell_view->priv->model));
}
void
-gtk_cell_view_set_displayed_row (GtkCellView *cellview,
+gtk_cell_view_set_displayed_row (GtkCellView *cell_view,
GtkTreePath *path)
{
- g_return_if_fail (GTK_IS_CELL_VIEW (cellview));
- g_return_if_fail (GTK_IS_TREE_MODEL (cellview->priv->model));
+ g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
+ g_return_if_fail (GTK_IS_TREE_MODEL (cell_view->priv->model));
g_return_if_fail (path != NULL);
- if (cellview->priv->displayed_row)
- gtk_tree_row_reference_free (cellview->priv->displayed_row);
+ if (cell_view->priv->displayed_row)
+ gtk_tree_row_reference_free (cell_view->priv->displayed_row);
- cellview->priv->displayed_row =
- gtk_tree_row_reference_new (cellview->priv->model, path);
+ cell_view->priv->displayed_row =
+ gtk_tree_row_reference_new (cell_view->priv->model, path);
- /* force redraw */
- gtk_widget_queue_draw (GTK_WIDGET (cellview));
+ /* force resize and redraw */
+ gtk_widget_queue_resize (GTK_WIDGET (cell_view));
+ gtk_widget_queue_draw (GTK_WIDGET (cell_view));
}
GtkTreePath *
-gtk_cell_view_get_displayed_row (GtkCellView *cellview)
+gtk_cell_view_get_displayed_row (GtkCellView *cell_view)
{
- g_return_val_if_fail (GTK_IS_CELL_VIEW (cellview), NULL);
+ g_return_val_if_fail (GTK_IS_CELL_VIEW (cell_view), NULL);
- if (!cellview->priv->displayed_row)
+ if (!cell_view->priv->displayed_row)
return NULL;
- return gtk_tree_row_reference_get_path (cellview->priv->displayed_row);
+ return gtk_tree_row_reference_get_path (cell_view->priv->displayed_row);
+}
+
+gboolean
+gtk_cell_view_get_size_of_row (GtkCellView *cell_view,
+ GtkTreePath *path,
+ GtkRequisition *requisition)
+{
+ GtkTreeRowReference *tmp;
+
+ g_return_val_if_fail (GTK_IS_CELL_VIEW (cell_view), FALSE);
+ g_return_val_if_fail (path != NULL, FALSE);
+ g_return_val_if_fail (requisition != NULL, FALSE);
+
+ tmp = cell_view->priv->displayed_row;
+ cell_view->priv->displayed_row =
+ gtk_tree_row_reference_new (cell_view->priv->model, path);
+
+ gtk_cell_view_size_request (GTK_WIDGET (cell_view), requisition);
+
+ gtk_tree_row_reference_free (cell_view->priv->displayed_row);
+ cell_view->priv->displayed_row = tmp;
+
+ return TRUE;
}
void
diff --git a/gtk/gtkcellview.h b/gtk/gtkcellview.h
index f3e7d40cb..11ed5efba 100644
--- a/gtk/gtkcellview.h
+++ b/gtk/gtkcellview.h
@@ -71,6 +71,9 @@ void gtk_cell_view_set_model (GtkCellView *cell_v
void gtk_cell_view_set_displayed_row (GtkCellView *cell_view,
GtkTreePath *path);
GtkTreePath *gtk_cell_view_get_displayed_row (GtkCellView *cell_view);
+gboolean gtk_cell_view_get_size_of_row (GtkCellView *cell_view,
+ GtkTreePath *path,
+ GtkRequisition *requisition);
void gtk_cell_view_set_background_color (GtkCellView *cell_view,
GdkColor *color);
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index 1e9d37145..93b35fe1b 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -80,7 +80,6 @@ struct _GtkComboBoxPrivate
GtkTreeViewColumn *column;
GtkWidget *cell_view;
- GtkWidget *measurer;
GtkWidget *hbox;
GtkWidget *cell_view_frame;
@@ -166,8 +165,7 @@ static void gtk_combo_box_popdown (GtkComboBox *combo_box)
static gint gtk_combo_box_calc_requested_width (GtkComboBox *combo_box,
GtkTreePath *path);
-static void gtk_combo_box_remeasure (GtkComboBox *combo_box,
- gboolean resize);
+static void gtk_combo_box_remeasure (GtkComboBox *combo_box);
static void gtk_combo_box_unset_model (GtkComboBox *combo_box);
static void gtk_combo_box_set_model_internal (GtkComboBox *combo_box);
@@ -415,8 +413,6 @@ gtk_combo_box_init (GtkComboBox *combo_box)
gtk_container_add (GTK_CONTAINER (combo_box), combo_box->priv->cell_view);
gtk_widget_show (combo_box->priv->cell_view);
- combo_box->priv->measurer = gtk_cell_view_new ();
-
combo_box->priv->width = 0;
combo_box->priv->wrap_width = 0;
@@ -504,6 +500,8 @@ gtk_combo_box_style_set (GtkWidget *widget,
gboolean appearance;
GtkComboBox *combo_box = GTK_COMBO_BOX (widget);
+ gtk_widget_queue_resize (widget);
+
/* if wrap_width > 0, then we are in grid-mode and forced to use
* unix style
*/
@@ -792,25 +790,27 @@ gtk_combo_box_calc_requested_width (GtkComboBox *combo_box,
gint padding;
GtkRequisition req;
- gtk_widget_style_get (combo_box->priv->measurer,
- "focus-line-width", &padding,
- NULL);
+ if (combo_box->priv->cell_view)
+ gtk_widget_style_get (combo_box->priv->cell_view,
+ "focus-line-width", &padding,
+ NULL);
+ else
+ padding = 0;
/* add some pixels for good measure */
padding += BONUS_PADDING;
- gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (combo_box->priv->measurer),
- path);
-
- /* nasty trick to get around the sizegroup's size request caching */
- (* GTK_WIDGET_GET_CLASS (combo_box->priv->measurer)->size_request) (combo_box->priv->measurer, &req);
+ if (combo_box->priv->cell_view)
+ gtk_cell_view_get_size_of_row (GTK_CELL_VIEW (combo_box->priv->cell_view),
+ path, &req);
+ else
+ req.width = 0;
return req.width + padding;
}
static void
-gtk_combo_box_remeasure (GtkComboBox *combo_box,
- gboolean resize)
+gtk_combo_box_remeasure (GtkComboBox *combo_box)
{
GtkTreeIter iter;
GtkTreePath *path;
@@ -819,11 +819,16 @@ gtk_combo_box_remeasure (GtkComboBox *combo_box,
if (!gtk_tree_model_get_iter_first (combo_box->priv->model, &iter))
return;
+ combo_box->priv->width = 0;
+
path = gtk_tree_path_new_from_indices (0, -1);
- gtk_widget_style_get (combo_box->priv->measurer,
- "focus-line-width", &padding,
- NULL);
+ if (combo_box->priv->cell_view)
+ gtk_widget_style_get (combo_box->priv->cell_view,
+ "focus-line-width", &padding,
+ NULL);
+ else
+ padding = 0;
/* add some pixels for good measure */
padding += BONUS_PADDING;
@@ -832,11 +837,11 @@ gtk_combo_box_remeasure (GtkComboBox *combo_box,
{
GtkRequisition req;
- gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (combo_box->priv->measurer),
- path);
-
- /* nasty trick to get around the sizegroup's size request caching */
- (* GTK_WIDGET_GET_CLASS (combo_box->priv->measurer)->size_request) (combo_box->priv->measurer, &req);
+ if (combo_box->priv->cell_view)
+ gtk_cell_view_get_size_of_row (GTK_CELL_VIEW (combo_box->priv->cell_view),
+ path, &req);
+ else
+ req.width = 0;
combo_box->priv->width = MAX (combo_box->priv->width,
req.width + padding);
@@ -846,13 +851,6 @@ gtk_combo_box_remeasure (GtkComboBox *combo_box,
while (gtk_tree_model_iter_next (combo_box->priv->model, &iter));
gtk_tree_path_free (path);
-
- if (combo_box->priv->cell_view && resize)
- {
- gtk_widget_set_size_request (combo_box->priv->cell_view,
- combo_box->priv->width, -1);
- gtk_widget_queue_resize (combo_box->priv->cell_view);
- }
}
static void
@@ -866,7 +864,7 @@ gtk_combo_box_size_request (GtkWidget *widget,
/* common */
gtk_widget_size_request (GTK_BIN (widget)->child, &bin_req);
- gtk_combo_box_remeasure (combo_box, FALSE);
+ gtk_combo_box_remeasure (combo_box);
bin_req.width = MAX (bin_req.width, combo_box->priv->width);
if (!combo_box->priv->tree_view)
@@ -1967,9 +1965,6 @@ gtk_combo_box_cell_layout_pack_start (GtkCellLayout *layout,
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box->priv->cell_view),
cell, expand);
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box->priv->measurer),
- cell, expand);
-
if (combo_box->priv->column)
gtk_tree_view_column_pack_start (combo_box->priv->column, cell, expand);
@@ -2015,9 +2010,6 @@ gtk_combo_box_cell_layout_pack_end (GtkCellLayout *layout,
gtk_cell_layout_pack_end (GTK_CELL_LAYOUT (combo_box->priv->cell_view),
cell, expand);
- gtk_cell_layout_pack_end (GTK_CELL_LAYOUT (combo_box->priv->measurer),
- cell, expand);
-
if (combo_box->priv->column)
gtk_tree_view_column_pack_end (combo_box->priv->column, cell, expand);
@@ -2053,9 +2045,6 @@ gtk_combo_box_cell_layout_clear (GtkCellLayout *layout)
if (combo_box->priv->cell_view)
gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo_box->priv->cell_view));
- if (combo_box->priv->measurer)
- gtk_cell_layout_clear (GTK_CELL_LAYOUT (combo_box->priv->measurer));
-
if (combo_box->priv->column)
gtk_tree_view_column_clear (combo_box->priv->column);
@@ -2103,9 +2092,6 @@ gtk_combo_box_cell_layout_add_attribute (GtkCellLayout *layout,
gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo_box->priv->cell_view),
cell, attribute, column);
- gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo_box->priv->measurer),
- cell, attribute, column);
-
if (combo_box->priv->column)
gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo_box->priv->column),
cell, attribute, column);
@@ -2131,7 +2117,7 @@ gtk_combo_box_cell_layout_add_attribute (GtkCellLayout *layout,
g_list_free (list);
}
- gtk_combo_box_remeasure (combo_box, TRUE);
+ gtk_widget_queue_resize (GTK_WIDGET (combo_box));
}
static void
@@ -2165,8 +2151,6 @@ gtk_combo_box_cell_layout_set_cell_data_func (GtkCellLayout *layout,
if (combo_box->priv->cell_view)
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo_box->priv->cell_view), cell, func, func_data, NULL);
- gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo_box->priv->measurer), cell, func, func_data, NULL);
-
if (combo_box->priv->column)
gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo_box->priv->column), cell, func, func_data, NULL);
@@ -2191,7 +2175,7 @@ gtk_combo_box_cell_layout_set_cell_data_func (GtkCellLayout *layout,
g_list_free (list);
}
- gtk_combo_box_remeasure (combo_box, TRUE);
+ gtk_widget_queue_resize (GTK_WIDGET (combo_box));
}
static void
@@ -2222,8 +2206,6 @@ gtk_combo_box_cell_layout_clear_attributes (GtkCellLayout *layout,
if (combo_box->priv->cell_view)
gtk_cell_layout_clear_attributes (GTK_CELL_LAYOUT (combo_box->priv->cell_view), cell);
- gtk_cell_layout_clear_attributes (GTK_CELL_LAYOUT (combo_box->priv->measurer), cell);
-
if (combo_box->priv->column)
gtk_cell_layout_clear_attributes (GTK_CELL_LAYOUT (combo_box->priv->column), cell);
@@ -2247,7 +2229,7 @@ gtk_combo_box_cell_layout_clear_attributes (GtkCellLayout *layout,
g_list_free (list);
}
- gtk_combo_box_remeasure (combo_box, TRUE);
+ gtk_widget_queue_resize (GTK_WIDGET (combo_box));
}
/*
@@ -2545,8 +2527,6 @@ gtk_combo_box_set_model (GtkComboBox *combo_box,
if (combo_box->priv->cell_view)
gtk_cell_view_set_model (GTK_CELL_VIEW (combo_box->priv->cell_view),
combo_box->priv->model);
- gtk_cell_view_set_model (GTK_CELL_VIEW (combo_box->priv->measurer),
- combo_box->priv->model);
}
/**