[gnumeric] Date axes: restore ability to edit.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Date axes: restore ability to edit.
- Date: Wed, 1 Sep 2010 23:46:58 +0000 (UTC)
commit 32949394749ee517decccc4fed56f82c07a5e5e1
Author: Morten Welinder <terra gnome org>
Date: Wed Sep 1 19:46:27 2010 -0400
Date axes: restore ability to edit.
src/widgets/ChangeLog | 6 ++++++
src/widgets/gnumeric-expr-entry.c | 22 ++++++++++++++--------
2 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/src/widgets/ChangeLog b/src/widgets/ChangeLog
index 2e82aa8..afa1c9b 100644
--- a/src/widgets/ChangeLog
+++ b/src/widgets/ChangeLog
@@ -1,3 +1,9 @@
+2010-09-01 Morten Welinder <terra gnome org>
+
+ * gnumeric-expr-entry.c (gee_update_calendar): Block the
+ calendar's changed signal when we are updating it to match the
+ entry.
+
2010-08-31 Morten Welinder <terra gnome org>
* gnumeric-expr-entry.c (gee_set_property): Don't do anything for
diff --git a/src/widgets/gnumeric-expr-entry.c b/src/widgets/gnumeric-expr-entry.c
index d64edff..4b7648c 100644
--- a/src/widgets/gnumeric-expr-entry.c
+++ b/src/widgets/gnumeric-expr-entry.c
@@ -93,6 +93,7 @@ struct _GnmExprEntry {
GtkEntry *entry;
GtkWidget *calendar_combo;
+ gulong calendar_combo_changed;
GtkWidget *icon;
SheetControlGUI *scg; /* the source of the edit */
Sheet *sheet; /* from scg */
@@ -118,7 +119,7 @@ struct _GnmExprEntry {
GnmFunc *fd;
gint args;
gboolean had_stuff;
- guint handlerid;
+ gulong handlerid;
gboolean enabled;
gboolean completion_se_valid;
gchar *completion;
@@ -368,10 +369,15 @@ gee_update_calendar (GnmExprEntry *gee)
if (!v)
return;
- if (datetime_value_to_g (&date, v, date_conv))
+ if (datetime_value_to_g (&date, v, date_conv)) {
+ g_signal_handler_block (gee->calendar_combo,
+ gee->calendar_combo_changed);
go_calendar_button_set_date
(GO_CALENDAR_BUTTON (gee->calendar_combo),
&date);
+ g_signal_handler_unblock (gee->calendar_combo,
+ gee->calendar_combo_changed);
+ }
value_release (v);
}
@@ -412,18 +418,18 @@ gee_set_format (GnmExprEntry *gee, GOFormat const *fmt)
gtk_widget_show (gee->calendar_combo);
gtk_box_pack_start (GTK_BOX (gee), gee->calendar_combo,
FALSE, TRUE, 0);
+ gee->calendar_combo_changed =
+ g_signal_connect (G_OBJECT (gee->calendar_combo),
+ "changed",
+ G_CALLBACK (cb_calendar_changed),
+ gee);
gee_update_calendar (gee);
-
-
- g_signal_connect (G_OBJECT (gee->calendar_combo),
- "changed",
- G_CALLBACK (cb_calendar_changed),
- gee);
}
} else {
if (gee->calendar_combo) {
gtk_widget_destroy (gee->calendar_combo);
gee->calendar_combo = NULL;
+ gee->calendar_combo_changed = 0;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]