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-option.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-option.c')
-rw-r--r-- | filter/filter-option.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/filter/filter-option.c b/filter/filter-option.c index 658136f0cb..3b3660dd5c 100644 --- a/filter/filter-option.c +++ b/filter/filter-option.c @@ -239,6 +239,14 @@ xml_decode (FilterElement *fe, xmlNodePtr node) return 0; } +static void +option_changed (GtkWidget *widget, FilterElement *fe) +{ + FilterOption *fo = (FilterOption *)fe; + + fo->current = gtk_object_get_data (GTK_OBJECT (widget), "option"); +} + static GtkWidget * get_widget (FilterElement *fe) { @@ -246,6 +254,7 @@ get_widget (FilterElement *fe) GtkWidget *menu; GtkWidget *omenu; GtkWidget *item; + GtkWidget *first = NULL; GList *l = fo->options; struct _filter_option *op; int index = 0, current = 0; @@ -253,12 +262,16 @@ get_widget (FilterElement *fe) menu = gtk_menu_new (); while (l) { op = l->data; - item = gtk_menu_item_new_with_label (_(op->title)); + item = gtk_menu_item_new_with_label (op->title); gtk_object_set_data (GTK_OBJECT (item), "option", op); + gtk_signal_connect (GTK_OBJECT (item), "activate", option_changed, fe); gtk_menu_append (GTK_MENU (menu), item); gtk_widget_show (item); if (op == fo->current) { current = index; + first = item; + } else if (!first) { + first = item; } l = g_list_next (l); @@ -267,6 +280,10 @@ get_widget (FilterElement *fe) 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; |