コード例 #1
0
ファイル: group-ws.c プロジェクト: olejorgenb/notion
WPHolder *groupws_prepare_manage_transient(WGroupWS *ws, const WClientWin *cwin,
                                           const WManageParams *param,
                                           int UNUSED(unused))
{
    WGroupAttachParams ap=GROUPATTACHPARAMS_INIT;
    WFramedParam fp=FRAMEDPARAM_INIT;
    WPHolder *ph;

    ap.stack_above=OBJ_CAST(REGION_PARENT(param->tfor), WRegion);
    if(ap.stack_above==NULL)
        return NULL;

    fp.inner_geom_gravity_set=TRUE;
    fp.inner_geom=param->geom;
    fp.gravity=param->gravity;
    fp.mode=FRAME_MODE_TRANSIENT;

    groupattachparams_get(&ap, cwin->proptab, "attach_params");

    if(!ap.geom_weak_set || param->userpos ||
       !param->maprq || ioncore_g.opmode==IONCORE_OPMODE_INIT){
        ap.geom_weak_set=1;
        ap.geom_weak=0;
    }

    ph=(WPHolder*)create_grouppholder(&ws->grp, NULL, &ap);

    return pholder_either((WPHolder*)create_framedpholder(ph, &fp), ph);
}
コード例 #2
0
ファイル: group-ws.c プロジェクト: olejorgenb/notion
static WPHolder *groupws_do_prepare_manage(WGroupWS *ws,
                                           const WClientWin *cwin,
                                           const WManageParams *param)
{
    WGroupAttachParams ap=GROUPATTACHPARAMS_INIT;
    WFramedParam fp=FRAMEDPARAM_INIT;
    WPHolder *ph;


    fp.inner_geom_gravity_set=TRUE;
    fp.inner_geom=param->geom;
    fp.gravity=param->gravity;

    groupattachparams_get(&ap, cwin->proptab, "attach_params");

    if(param->userpos ||
       !param->maprq || ioncore_g.opmode==IONCORE_OPMODE_INIT){
        ap.geom_weak_set=1;
        ap.geom_weak=0;
    }else if(!ap.geom_weak_set){
        ap.geom_weak_set=1;
        ap.geom_weak=REGION_RQGEOM_WEAK_X|REGION_RQGEOM_WEAK_Y;
    }

    ph=(WPHolder*)create_grouppholder(&ws->grp, NULL, &ap);

    if(ph!=NULL)
        ph=pholder_either((WPHolder*)create_framedpholder(ph, &fp), ph);

    if(ph!=NULL){
        WGroupPHolder *gph;
        WGroupAttachParams gp=GROUPATTACHPARAMS_INIT;

        gp.switchto_set=1;
        gp.switchto=1;
        gp.bottom=1;

        gph=create_grouppholder(NULL, NULL, &gp);

        if(gph!=NULL){
            gph->recreate_pholder=ph;
            return (WPHolder*)gph;
        }
    }

    return ph;
}
コード例 #3
0
ファイル: grouppholder.c プロジェクト: JoeNotCharles/notion
WGroupPHolder *group_managed_get_pholder(WGroup *ws, WRegion *mgd)
{
    WStacking *st=group_find_stacking(ws, mgd);
    
    if(mgd==NULL)
        return NULL;
    else
        return create_grouppholder(ws, st, NULL);
}