ui/common/context.c

changeset 90
2019fdbaadfd
parent 88
04c81be1c5a0
child 94
d51e334c1439
equal deleted inserted replaced
89:9a7e4a335b2b 90:2019fdbaadfd
172 var->from = from; 172 var->from = from;
173 173
174 return var; 174 return var;
175 } 175 }
176 } else { 176 } else {
177 // create an empty value and add it first to the window variables 177 // create an empty value and add it to the window variables
178 // it can be moved to the document vars later 178 // it can be moved to the document vars later
179 void *value = uic_create_value(ctx->mempool->allocator, type); 179 void *value = uic_create_value(ctx->mempool->allocator, type);
180 if(!value) { 180 if(!value) {
181 fprintf(stderr, "UI Error: Cannot create empty value.\n"); 181 fprintf(stderr, "UI Error: Cannot create empty value.\n");
182 return NULL; 182 return NULL;
215 } 215 }
216 case UI_VAR_TEXT: { 216 case UI_VAR_TEXT: {
217 UiText *f = from->value; 217 UiText *f = from->value;
218 UiText *t = to->value; 218 UiText *t = to->value;
219 char *tvalue = t->value; 219 char *tvalue = t->value;
220 int tpos = t->pos;
220 memcpy(t, f, sizeof(UiText)); 221 memcpy(t, f, sizeof(UiText));
221 if(set && tvalue) { 222 if(set && tvalue) {
222 t->set(t, tvalue); 223 t->set(t, tvalue);
224 t->setposition(t, tpos);
223 } else { 225 } else {
224 f->value = f->get(f); 226 f->value = f->get(f);
227 f->pos = f->position(f);
225 } 228 }
226 break; 229 break;
227 } 230 }
228 case UI_VAR_LIST: { 231 case UI_VAR_LIST: {
229 UiListVar *f = from->value; 232 UiListVar *f = from->value;

mercurial