fix a bug about filtering and bounce, be careful, filtering or bouncing action can...
[claws.git] / src / prefs_filtering.c
index ec5322148fb4ac47568f82c886d88d44de547fd0..f50407cc03d127fad8b613a00343a2e2c3dce633 100644 (file)
@@ -126,9 +126,9 @@ enum {
        ACTION_MARK_AS_UNREAD = 6,
        ACTION_FORWARD = 7,
        ACTION_FORWARD_AS_ATTACHMENT = 8,
-       ACTION_EXECUTE = 9,
-       ACTION_COLOR = 10,
-       ACTION_BOUNCE = 11
+       ACTION_BOUNCE = 9,
+       ACTION_EXECUTE = 10,
+       ACTION_COLOR = 11,
 };
 
 static gint get_sel_from_list(GtkList * list)
@@ -203,6 +203,8 @@ static gint prefs_filtering_get_matching_from_action(gint action_id)
                return MATCHACTION_FORWARD;
        case ACTION_FORWARD_AS_ATTACHMENT:
                return MATCHACTION_FORWARD_AS_ATTACHMENT;
+       case ACTION_BOUNCE:
+               return MATCHACTION_BOUNCE;
        case ACTION_EXECUTE:
                return MATCHACTION_EXECUTE;
        case ACTION_COLOR:
@@ -232,7 +234,7 @@ void prefs_filtering_open(FolderItem * item)
        if (prefs_rc_is_readonly(FILTERING_RC))
                return;
 
-       inc_autocheck_timer_remove();
+       inc_lock();
 
        if (!filtering.window) {
                prefs_filtering_create();
@@ -256,6 +258,7 @@ static void prefs_filtering_close(void)
        end_address_completion();
        
        gtk_widget_hide(filtering.window);
+       inc_unlock();
 }
 
 static void prefs_filtering_create(void)
@@ -361,7 +364,6 @@ static void prefs_filtering_create(void)
 
        cond_entry = gtk_entry_new ();
        gtk_widget_show (cond_entry);
-//     gtk_widget_set_usize (cond_entry, 200, -1);
        gtk_box_pack_start (GTK_BOX (hbox1), cond_entry, TRUE, TRUE, 0);
 
        cond_btn = gtk_button_new_with_label (_("Define ..."));
@@ -383,7 +385,6 @@ static void prefs_filtering_create(void)
 
        action_combo = gtk_combo_new ();
        gtk_widget_show (action_combo);
-//     gtk_widget_set_usize (action_combo, 200, -1);
        gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(action_combo)->entry),
                               FALSE);
 
@@ -473,13 +474,11 @@ static void prefs_filtering_create(void)
 
        dest_entry = gtk_entry_new ();
        gtk_widget_show (dest_entry);
-//     gtk_widget_set_usize (dest_entry, 200, -1);
        gtk_box_pack_start (GTK_BOX (hbox1), dest_entry, TRUE, TRUE, 0);
        
        color_optmenu = gtk_option_menu_new();
        gtk_option_menu_set_menu(GTK_OPTION_MENU(color_optmenu),
                                 colorlabel_create_color_menu());
-//     gtk_widget_set_usize(color_optmenu, -1, -1);
        gtk_box_pack_start(GTK_BOX(hbox1), color_optmenu, TRUE, TRUE, 0);
 
        dest_btn = gtk_button_new_with_label (_("Select ..."));
@@ -496,11 +495,6 @@ static void prefs_filtering_create(void)
                            GTK_SIGNAL_FUNC (prefs_matcher_exec_info),
                            NULL);
 
-//     dummy = gtk_label_new("");
-//     gtk_widget_show (dummy);
-//     gtk_box_pack_start(GTK_BOX (hbox1), dummy, FALSE, FALSE, 0);
-       
-
        /* register / substitute / delete */
 
        reg_hbox = gtk_hbox_new (FALSE, 4);
@@ -947,9 +941,9 @@ static void prefs_filtering_select_set(FilteringProp * prop)
                                     ACTION_MARK_AS_UNREAD);
                break;
        case MATCHACTION_FORWARD:
+               list_id = get_list_id_from_account_id(action->account_id);
                gtk_list_select_item(GTK_LIST(filtering.action_list),
                                     ACTION_FORWARD);
-               list_id = get_list_id_from_account_id(action->account_id);
                gtk_list_select_item(GTK_LIST(filtering.account_list),
                                     list_id);
                break;
@@ -961,9 +955,9 @@ static void prefs_filtering_select_set(FilteringProp * prop)
                                     list_id);
                break;
        case MATCHACTION_BOUNCE:
+               list_id = get_list_id_from_account_id(action->account_id);
                gtk_list_select_item(GTK_LIST(filtering.action_list),
                                     ACTION_BOUNCE);
-               list_id = get_list_id_from_account_id(action->account_id);
                gtk_list_select_item(GTK_LIST(filtering.account_list),
                                     list_id);
                break;
@@ -1167,7 +1161,7 @@ static void prefs_filtering_action_select(GtkList *list,
                gtk_widget_hide(filtering.dest_btn);
                gtk_widget_hide(filtering.dest_label);
                gtk_widget_show(filtering.exec_label);
-               gtk_widget_set_sensitive(filtering.exec_btn, FALSE);
+               gtk_widget_set_sensitive(filtering.exec_btn, TRUE);
                gtk_widget_show(filtering.exec_btn);
                gtk_widget_hide(filtering.color_optmenu);
                gtk_widget_hide(filtering.color_label);