ui/common/context.c

changeset 1092
0accf125a65f
parent 1091
1524b5dc4d4d
child 1094
c0eb2bc7ab13
equal deleted inserted replaced
1091:1524b5dc4d4d 1092:0accf125a65f
150 } 150 }
151 } 151 }
152 152
153 var_ctx = var_ctx->parent; 153 var_ctx = var_ctx->parent;
154 } 154 }
155
156 ui_update_action_bindings(ctx);
155 } 157 }
156 158
157 static void uic_context_unbind_vars(UiContext *ctx) { 159 static void uic_context_unbind_vars(UiContext *ctx) {
158 ui_onchange_events_enable(FALSE); 160 ui_onchange_events_enable(FALSE);
159 CxMapIterator mi = cxMapIterator(ctx->vars); 161 CxMapIterator mi = cxMapIterator(ctx->vars);
192 ctx->document = cxListAt(ctx->documents, 0); 194 ctx->document = cxListAt(ctx->documents, 0);
193 195
194 UiContext *docctx = ui_document_context(document); 196 UiContext *docctx = ui_document_context(document);
195 uic_context_unbind_vars(docctx); // unbind all doc/subdoc vars from the parent 197 uic_context_unbind_vars(docctx); // unbind all doc/subdoc vars from the parent
196 docctx->parent = NULL; 198 docctx->parent = NULL;
199
200 ui_update_action_bindings(ctx);
197 } 201 }
198 202
199 void uic_context_detach_all(UiContext *ctx) { 203 void uic_context_detach_all(UiContext *ctx) {
200 // copy list 204 // copy list
201 CxList *ls = cxLinkedListCreate(cxDefaultAllocator, CX_STORE_POINTERS); 205 CxList *ls = cxLinkedListCreate(cxDefaultAllocator, CX_STORE_POINTERS);
209 cx_foreach(void *, doc, i) { 213 cx_foreach(void *, doc, i) {
210 ctx->detach_document2(ctx, doc); 214 ctx->detach_document2(ctx, doc);
211 } 215 }
212 216
213 cxListFree(ls); 217 cxListFree(ls);
218 ui_update_action_bindings(ctx);
214 } 219 }
215 220
216 static UiVar* ctx_getvar(UiContext *ctx, CxHashKey key) { 221 static UiVar* ctx_getvar(UiContext *ctx, CxHashKey key) {
217 UiVar *var = cxMapGet(ctx->vars, key); 222 UiVar *var = cxMapGet(ctx->vars, key);
218 if(!var && ctx->documents) { 223 if(!var && ctx->documents) {

mercurial