diff options
author | Jeffrey Stedfast <fejj@helixcode.com> | 2001-01-10 13:44:23 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-01-10 13:44:23 +0800 |
commit | f54327b748170a6e771dc0cd87eff918d7f64b2d (patch) | |
tree | 77ad253ada6b454862cffdcaddc4548b460d039e /filter/filter-system-flag.c | |
parent | 8f1d09360b6e8d6c07ce44d1a437678b41226524 (diff) | |
download | gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.tar gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.tar.gz gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.tar.bz2 gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.tar.lz gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.tar.xz gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.tar.zst gsoc2013-evolution-f54327b748170a6e771dc0cd87eff918d7f64b2d.zip |
Attach to the "activate" signal - this should now make it so that a
2001-01-10 Jeffrey Stedfast <fejj@helixcode.com>
* filter-option.c (get_widget): Attach to the "activate" signal -
this should now make it so that a filter-option will "remember"
what a user changed.
* filter-system-flag.c (get_widget): Don't reset fsf->value to the
first system flag, this should already be defaulted to the
appropriate flag. This should fix the problem of always defaulting
to the first menu option and thus "forgetting" the user's settings.
svn path=/trunk/; revision=7356
Diffstat (limited to 'filter/filter-system-flag.c')
-rw-r--r-- | filter/filter-system-flag.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/filter/filter-system-flag.c b/filter/filter-system-flag.c index f1eb2a5b10..3667876e23 100644 --- a/filter/filter-system-flag.c +++ b/filter/filter-system-flag.c @@ -69,12 +69,12 @@ struct _system_flag { }; static struct _system_flag * -find_option (const char *name) +find_option (const char *value) { struct _system_flag *flag; for (flag = system_flags; flag->title; flag++) { - if (!g_strcasecmp (name, flag->value)) + if (!g_strcasecmp (value, flag->value)) return flag; } @@ -215,26 +215,36 @@ static GtkWidget * get_widget (FilterElement *fe) { FilterSystemFlag *fsf = (FilterSystemFlag *) fe; - GtkWidget *omenu, *menu, *item; + GtkWidget *omenu, *menu, *item, *first = NULL; struct _system_flag *flag; int index = 0, current = 0; - fsf->value = system_flags[0].value; - menu = gtk_menu_new (); for (flag = system_flags; flag->title; flag++) { item = gtk_menu_item_new_with_label (flag->title); gtk_object_set_data (GTK_OBJECT (item), "flag", flag); - gtk_signal_connect (GTK_OBJECT (item), "select", item_selected, fe); + gtk_signal_connect (GTK_OBJECT (item), "activate", item_selected, fe); + gtk_menu_append (GTK_MENU (menu), item); + gtk_widget_show (item); - if (!strcmp (fsf->value, flag->value)) + + if (fsf->value && !g_strcasecmp (fsf->value, flag->value)) { current = index; + first = item; + } else if (!first) { + first = item; + } + index++; } omenu = gtk_option_menu_new (); gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu); + + if (first) + gtk_signal_emit_by_name (GTK_OBJECT (first), "activate", fe); + gtk_option_menu_set_history (GTK_OPTION_MENU (omenu), current); return omenu; |