diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2012-02-28 15:04:31 -0500 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2012-02-28 15:06:33 -0500 |
commit | ab605e11bf3410ab03f5b9dc5a2854a24831eb17 (patch) | |
tree | 6b61327c8a932b7acd33206ebeba7f52bfcbd78c /gtk/gtkcellrendereraccel.c | |
parent | a77eba5de42930b43989b0df58fe2680f6834a1d (diff) | |
download | gtk+-ab605e11bf3410ab03f5b9dc5a2854a24831eb17.tar.gz |
cellrendereraccel: override get_preferred_width, not get_size
Since GtkCellRendererText moved to WFH requests, our get_size
implementation is ignored. We should override get_preferred_width
instead. This fixes the accel renderer being clipped to a wrong size
when trying to edit its shortcut.
Diffstat (limited to 'gtk/gtkcellrendereraccel.c')
-rw-r--r-- | gtk/gtkcellrendereraccel.c | 41 |
1 files changed, 18 insertions, 23 deletions
diff --git a/gtk/gtkcellrendereraccel.c b/gtk/gtkcellrendereraccel.c index 7143c47380..10758f6b55 100644 --- a/gtk/gtkcellrendereraccel.c +++ b/gtk/gtkcellrendereraccel.c @@ -53,13 +53,11 @@ static void gtk_cell_renderer_accel_set_property (GObject *object, guint param_id, const GValue *value, GParamSpec *pspec); -static void gtk_cell_renderer_accel_get_size (GtkCellRenderer *cell, - GtkWidget *widget, - const GdkRectangle *cell_area, - gint *x_offset, - gint *y_offset, - gint *width, - gint *height); +static void gtk_cell_renderer_accel_get_preferred_width + (GtkCellRenderer *cell, + GtkWidget *widget, + gint *minimum_size, + gint *natural_size); static GtkCellEditable * gtk_cell_renderer_accel_start_editing (GtkCellRenderer *cell, GdkEvent *event, @@ -134,7 +132,7 @@ gtk_cell_renderer_accel_class_init (GtkCellRendererAccelClass *cell_accel_class) object_class->set_property = gtk_cell_renderer_accel_set_property; object_class->get_property = gtk_cell_renderer_accel_get_property; - cell_renderer_class->get_size = gtk_cell_renderer_accel_get_size; + cell_renderer_class->get_preferred_width = gtk_cell_renderer_accel_get_preferred_width; cell_renderer_class->start_editing = gtk_cell_renderer_accel_start_editing; /** @@ -405,31 +403,28 @@ gtk_cell_renderer_accel_set_property (GObject *object, } static void -gtk_cell_renderer_accel_get_size (GtkCellRenderer *cell, - GtkWidget *widget, - const GdkRectangle *cell_area, - gint *x_offset, - gint *y_offset, - gint *width, - gint *height) +gtk_cell_renderer_accel_get_preferred_width (GtkCellRenderer *cell, + GtkWidget *widget, + gint *minimum_size, + gint *natural_size) { GtkCellRendererAccelPrivate *priv = GTK_CELL_RENDERER_ACCEL (cell)->priv; - GtkRequisition requisition; + GtkRequisition min_req, nat_req; if (priv->sizing_label == NULL) priv->sizing_label = gtk_label_new (_("New accelerator...")); - gtk_widget_get_preferred_size (priv->sizing_label, &requisition, NULL); + gtk_widget_get_preferred_size (priv->sizing_label, &min_req, &nat_req); - GTK_CELL_RENDERER_CLASS (gtk_cell_renderer_accel_parent_class)->get_size (cell, widget, cell_area, - x_offset, y_offset, width, height); + GTK_CELL_RENDERER_CLASS (gtk_cell_renderer_accel_parent_class)->get_preferred_width (cell, widget, + minimum_size, natural_size); /* FIXME: need to take the cell_area et al. into account */ - if (width) - *width = MAX (*width, requisition.width); - if (height) - *height = MAX (*height, requisition.height); + if (minimum_size) + *minimum_size = MAX (*minimum_size, min_req.width); + if (natural_size) + *natural_size = MAX (*natural_size, nat_req.width); } static gboolean |