aboutsummaryrefslogtreecommitdiffstats
path: root/filter/rule-editor.c
diff options
context:
space:
mode:
authorSrinivasa Ragavan <sragavan@src.gnome.org>2007-06-18 12:54:07 +0800
committerSrinivasa Ragavan <sragavan@src.gnome.org>2007-06-18 12:54:07 +0800
commit494cc008639cfbaef55113d98da76c791770a987 (patch)
treee5470f3b3e1c102dd0608437d3ec68a4a84e8486 /filter/rule-editor.c
parent20f692fb88bfcad5557c2732c41e5b7977ffce21 (diff)
downloadgsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.tar
gsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.tar.gz
gsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.tar.bz2
gsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.tar.lz
gsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.tar.xz
gsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.tar.zst
gsoc2013-evolution-494cc008639cfbaef55113d98da76c791770a987.zip
** Fix for bug #263207
svn path=/trunk/; revision=33689
Diffstat (limited to 'filter/rule-editor.c')
-rw-r--r--filter/rule-editor.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/filter/rule-editor.c b/filter/rule-editor.c
index 28e44f862a..cb0cb358c2 100644
--- a/filter/rule-editor.c
+++ b/filter/rule-editor.c
@@ -50,6 +50,8 @@ static void rule_editor_init (RuleEditor *re);
static void rule_editor_finalise (GObject *obj);
static void rule_editor_destroy (GtkObject *obj);
+static void dialog_rule_changed (FilterRule *fr, GtkWidget *dialog);
+
#define _PRIVATE(x)(((RuleEditor *)(x))->priv)
enum {
@@ -385,7 +387,10 @@ rule_add (GtkWidget *widget, RuleEditor *re)
g_signal_connect (re->dialog, "response", G_CALLBACK (add_editor_response), re);
g_object_weak_ref ((GObject *) re->dialog, (GWeakNotify) editor_destroy, re);
-
+
+ g_signal_connect (re->edit, "changed", G_CALLBACK (dialog_rule_changed), re->dialog);
+ dialog_rule_changed (re->edit, re->dialog);
+
gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE);
gtk_widget_show (re->dialog);
@@ -461,7 +466,10 @@ rule_edit (GtkWidget *widget, RuleEditor *re)
g_signal_connect (re->dialog, "response", G_CALLBACK (edit_editor_response), re);
g_object_weak_ref ((GObject *) re->dialog, (GWeakNotify) editor_destroy, re);
-
+
+ g_signal_connect (re->edit, "changed", G_CALLBACK (dialog_rule_changed), re->dialog);
+ dialog_rule_changed (re->edit, re->dialog);
+
gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE);
gtk_widget_show (re->dialog);
@@ -653,6 +661,13 @@ set_sensitive (RuleEditor *re)
gtk_widget_set_sensitive (GTK_WIDGET (re->priv->buttons[BUTTON_BOTTOM]), index >= 0 && index < count);
}
+static void
+dialog_rule_changed (FilterRule *fr, GtkWidget *dialog)
+{
+ g_return_if_fail (dialog != NULL);
+
+ gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), GTK_RESPONSE_OK, fr && fr->parts);
+}
static void
cursor_changed (GtkTreeView *treeview, RuleEditor *re)