diff -r eb5269000bc8 -r eeb50c534497 ui/gtk/menu.c --- a/ui/gtk/menu.c Sun Dec 08 11:20:41 2013 +0000 +++ b/ui/gtk/menu.c Fri Mar 21 13:20:53 2014 +0100 @@ -253,19 +253,15 @@ GtkWidget *widget = gtk_check_menu_item_new_with_mnemonic(ci->label); gtk_menu_shell_append(GTK_MENU_SHELL(p), widget); - UiVar *var = uic_getvar(obj, ci->varname); - if(!var) { - ui_window_addint(obj, ci->varname); - var = uic_getvar(obj, ci->varname); - } - if(var->type == 1) { + UiVar *var = uic_connect_var(obj->ctx, ci->varname, UI_VAR_INTEGER); + if(var) { UiInteger *value = var->value; value->obj = widget; value->get = ui_checkitem_get; value->set = ui_checkitem_set; value = 0; } else { - // TODO: error message + // TODO: error } } @@ -275,7 +271,7 @@ UiEvent evt; evt.obj = event->obj; evt.window = event->obj->window; - evt.document = NULL; + evt.document = event->obj->document; evt.intval = 0; event->callback(&evt, event->user_data); } @@ -284,7 +280,7 @@ UiEvent evt; evt.obj = event->obj; evt.window = event->obj->window; - evt.document = NULL; + evt.document = event->obj->document; evt.intval = gtk_check_menu_item_get_active(ci); event->callback(&evt, event->user_data); }