Mercurial > hg > xemacs-beta
diff lwlib/lwlib.c @ 450:98528da0b7fc r21-2-40
Import from CVS: tag r21-2-40
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:39:20 +0200 |
parents | abe6d1db359e |
children | 4b7d425dd3c2 |
line wrap: on
line diff
--- a/lwlib/lwlib.c Mon Aug 13 11:38:26 2007 +0200 +++ b/lwlib/lwlib.c Mon Aug 13 11:39:20 2007 +0200 @@ -264,6 +264,10 @@ lw_copy_widget_value_args (new, old); changed = True; } + else if (new->args && new->args == old->args && new->args->args_changed == True) + { + changed = True; + } return changed; } @@ -756,7 +760,11 @@ update_one_widget_instance (instance, deep_p); for (val = info->val; val; val = val->next) - val->change = NO_CHANGE; + { + val->change = NO_CHANGE; + if (val->args) + val->args->args_changed = False; + } } void @@ -821,7 +829,11 @@ update_one_widget_instance (instance, True); for (val = instance->info->val; val; val = val->next) - val->change = NO_CHANGE; + { + val->change = NO_CHANGE; + if (val->args) + val->args->args_changed = False; + } } /* strcasecmp() is not sufficiently portable or standard, @@ -841,9 +853,9 @@ } static widget_creation_function -find_in_table (const char *type, widget_creation_entry *table) +find_in_table (const char *type, const widget_creation_entry table[]) { - widget_creation_entry *cur; + const widget_creation_entry *cur; for (cur = table; cur->type; cur++) if (!ascii_strcasecmp (type, cur->type)) return cur->function; @@ -1393,6 +1405,8 @@ if (wv->args->nargs > 10) return; + /* Register the change. */ + wv->args->args_changed = True; /* If the arg is already there then we must replace it. */ for (i = 0; i < wv->args->nargs; i++) {