[gnumeric] Evaluation: make sure evaluation caches get cleared.



commit 36d66b188b5d088a7a4457752213fdc120644d2a
Author: Morten Welinder <terra gnome org>
Date:   Thu May 14 13:07:22 2009 -0400

    Evaluation: make sure evaluation caches get cleared.
---
 ChangeLog           |    5 +++++
 src/application.c   |    8 ++++++++
 src/application.h   |    2 ++
 src/dependent.c     |    2 +-
 src/workbook-view.c |    1 +
 5 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 631d8f5..13a35b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2009-05-14  Morten Welinder  <terra gnome org>
 
+	* src/application.c (gnm_app_recalc_finished): New function.
+	* src/dependent.c (workbook_recalc): Use gnm_app_recalc_finished.
+	* src/workbook-view.c (wb_view_auto_expr_recalc): Call
+	gnm_app_recalc_finished.
+
 	* src/commands.c (cmd_so_set_adjustment): Handle h/v too.  All
 	callers changed.
 	* src/sheet-object-widget.c (sheet_widget_adjustment_user_config_impl):
diff --git a/src/application.c b/src/application.c
index 6d14e53..e9cea69 100644
--- a/src/application.c
+++ b/src/application.c
@@ -863,3 +863,11 @@ _gnm_app_flag_windows_changed (void)
 		windows_update_timer = g_timeout_add (100,
 			(GSourceFunc)cb_flag_windows_changed, NULL);
 }
+
+/**********************************************************************/
+
+void
+gnm_app_recalc_finished (void)
+{
+	g_signal_emit_by_name (gnm_app_get_app (), "recalc-finished");
+}
diff --git a/src/application.h b/src/application.h
index 73808d0..ed96d33 100644
--- a/src/application.h
+++ b/src/application.h
@@ -27,6 +27,8 @@ gboolean     gnm_app_workbook_foreach	   (GnmWbIterFunc func, gpointer data);
 GSList      *gnm_app_history_get_list	   (int max_elements);
 void	     gnm_app_history_add	   (char const *filename, const char *mimetype);
 
+void         gnm_app_recalc_finished       (void);
+
 /* GtkFileFilter */
 void        *gnm_app_create_opener_filter (void);
 
diff --git a/src/dependent.c b/src/dependent.c
index 513825b..bd2bef5 100644
--- a/src/dependent.c
+++ b/src/dependent.c
@@ -2659,7 +2659,7 @@ workbook_recalc (Workbook *wb)
 	 * expensive.
 	 */
 	if (redraw) {
-		g_signal_emit_by_name (gnm_app_get_app (), "recalc-finished");
+		gnm_app_recalc_finished ();
 
 		WORKBOOK_FOREACH_SHEET (wb, sheet, {
 			SHEET_FOREACH_VIEW (sheet, sv, sv_flag_selection_change (sv););
diff --git a/src/workbook-view.c b/src/workbook-view.c
index 02771fe..6238180 100644
--- a/src/workbook-view.c
+++ b/src/workbook-view.c
@@ -487,6 +487,7 @@ wb_view_auto_expr_recalc (WorkbookView *wbv)
 	ei.pos = eval_pos_init_sheet (&ep, wbv->current_sheet);
 	ei.func_call = &expr->func;
 	v = function_call_with_exprs (&ei, 0);
+	gnm_app_recalc_finished ();
 
 	if (v) {
 		GString *str = g_string_new (wbv->auto_expr_descr);



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