[gtk+/treeview-refactor] Added gtk_cell_area_stop_editing to allow explicit stopping of cell editing.
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/treeview-refactor] Added gtk_cell_area_stop_editing to allow explicit stopping of cell editing.
- Date: Mon, 8 Nov 2010 02:28:59 +0000 (UTC)
commit 09e3d9d3aaafa1b756120afcd5d2a80f4ae13439
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Sat Nov 6 15:42:37 2010 +0900
Added gtk_cell_area_stop_editing to allow explicit stopping of cell editing.
gtk/gtkcellarea.c | 35 ++++++++++++++++++++++++++---------
gtk/gtkcellarea.h | 2 ++
2 files changed, 28 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkcellarea.c b/gtk/gtkcellarea.c
index f9485aa..d997af0 100644
--- a/gtk/gtkcellarea.c
+++ b/gtk/gtkcellarea.c
@@ -618,15 +618,8 @@ gtk_cell_area_real_event (GtkCellArea *area,
else if (priv->edited_cell &&
(key_event->keyval == GDK_KEY_Escape))
{
- /* Cancel editing of the cell renderer */
- gtk_cell_renderer_stop_editing (priv->edited_cell, TRUE);
-
- /* Signal that editing has been canceled */
- gtk_cell_area_editing_canceled (area, priv->edited_cell);
-
- /* Remove any references to the editable widget */
- gtk_cell_area_set_edited_cell (area, NULL);
- gtk_cell_area_set_edit_widget (area, NULL);
+ gtk_cell_area_stop_editing (area, TRUE);
+ return TRUE;
}
}
@@ -2101,6 +2094,30 @@ gtk_cell_area_activate_cell (GtkCellArea *area,
return FALSE;
}
+void
+gtk_cell_area_stop_editing (GtkCellArea *area,
+ gboolean canceled)
+{
+ GtkCellAreaPrivate *priv;
+
+ g_return_if_fail (GTK_IS_CELL_AREA (area));
+
+ priv = area->priv;
+
+ if (priv->edited_cell)
+ {
+ /* Stop editing of the cell renderer */
+ gtk_cell_renderer_stop_editing (priv->edited_cell, canceled);
+
+ /* Signal that editing has been canceled */
+ if (canceled)
+ gtk_cell_area_editing_canceled (area, priv->edited_cell);
+
+ /* Remove any references to the editable widget */
+ gtk_cell_area_set_edited_cell (area, NULL);
+ gtk_cell_area_set_edit_widget (area, NULL);
+ }
+}
/*************************************************************
* API: Margins *
diff --git a/gtk/gtkcellarea.h b/gtk/gtkcellarea.h
index 7fc450d..a0cc50f 100644
--- a/gtk/gtkcellarea.h
+++ b/gtk/gtkcellarea.h
@@ -292,6 +292,8 @@ gboolean gtk_cell_area_activate_cell (GtkCellArea
GdkEvent *event,
const GdkRectangle *cell_area,
GtkCellRendererState flags);
+void gtk_cell_area_stop_editing (GtkCellArea *area,
+ gboolean canceled);
/* Margins */
gint gtk_cell_area_get_cell_margin_left (GtkCellArea *area);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]