コード例 #1
0
ファイル: focus.c プロジェクト: jsbackus/notion
void region_set_await_focus(WRegion *reg)
{
    if(reg==NULL){
        watch_reset(&await_watch);
    }else{
        watch_setup(&await_watch, (Obj*)reg,
                    (WatchHandler*)await_watch_handler);
    }
}
コード例 #2
0
ファイル: focus.c プロジェクト: jsbackus/notion
static void await_watch_handler(Watch *UNUSED(watch), WRegion *prev)
{
    WRegion *r;
    while(1){
        r=REGION_PARENT_REG(prev);
        if(r==NULL)
            break;
        
        if(watch_setup(&await_watch, (Obj*)r, 
                       (WatchHandler*)await_watch_handler))
            break;
        prev=r;
    }
}
コード例 #3
0
ファイル: grouppholder.c プロジェクト: JoeNotCharles/notion
void grouppholder_do_link(WGroupPHolder *ph, WGroup *group, WRegion *stack_above)
{
    ph->group=group;
    
    if(group!=NULL){
        LINK_ITEM_FIRST(group->phs, ph, next, prev);
    }else{
        /* This seems very crucial for detached pholders... */
        ph->next=NULL;
        ph->prev=ph;
    }
    
    /* We must move stack_above pointer into a Watch. */
    if(stack_above!=NULL)
        watch_setup(&(ph->stack_above_watch), (Obj*)stack_above, NULL);
}
コード例 #4
0
ファイル: objlist.c プロジェクト: matled/notion
static ObjList *mknode(void *obj)
{
    ObjList *node;
    
    if(obj==NULL)
        return NULL;
    
    node=ALLOC(ObjList);
    
    if(node==NULL)
        return FALSE;
        
    watch_init(&(node->watch));
    
    if(!watch_setup(&(node->watch), obj, watch_handler)){
        free(node);
        return NULL;
    }
    
    return node;
}