Fixed gtk_cell_area_stop_editing() to properly notify when editing is not canceled

This fixes bug 653289, in gtk+-2 gtk_tree_view_stop_editing() was previously
responsible for notifying with gtk_cell_editable_editing_done(), this detail
was missed when porting the cell renderer management to GtkCellArea.
This commit is contained in:
Tristan Van Berkom 2011-10-03 19:32:00 -04:00
parent b928664471
commit 00d79fdb61

View File

@ -3464,11 +3464,14 @@ gtk_cell_area_activate_cell (GtkCellArea *area,
* @area: a #GtkCellArea * @area: a #GtkCellArea
* @canceled: whether editing was canceled. * @canceled: whether editing was canceled.
* *
* Explicitly stops the editing of the currently * Explicitly stops the editing of the currently edited cell.
* edited cell (see gtk_cell_area_get_edited_cell()).
* *
* If @canceled is %TRUE, the cell renderer will emit * If @canceled is %TRUE, the currently edited cell renderer
* the ::editing-canceled signal. * will emit the ::editing-canceled signal, otherwise the
* the ::editing-done signal will be emitted on the current
* edit widget.
*
* See gtk_cell_area_get_edited_cell() and gtk_cell_area_get_edit_widget().
* *
* Since: 3.0 * Since: 3.0
*/ */
@ -3490,6 +3493,13 @@ gtk_cell_area_stop_editing (GtkCellArea *area,
/* Stop editing of the cell renderer */ /* Stop editing of the cell renderer */
gtk_cell_renderer_stop_editing (priv->edited_cell, canceled); gtk_cell_renderer_stop_editing (priv->edited_cell, canceled);
/* When editing is explicitly halted either
* the "editing-canceled" signal is emitted on the cell
* renderer or the "editing-done" signal on the GtkCellEditable widget
*/
if (!canceled)
gtk_cell_editable_editing_done (edit_widget);
/* Remove any references to the editable widget */ /* Remove any references to the editable widget */
gtk_cell_area_set_edited_cell (area, NULL); gtk_cell_area_set_edited_cell (area, NULL);
gtk_cell_area_set_edit_widget (area, NULL); gtk_cell_area_set_edit_widget (area, NULL);