/*
* ion/ioncore/group-ws.c
*
- * Copyright (c) Tuomo Valkonen 1999-2007.
+ * Copyright (c) Tuomo Valkonen 1999-2009.
*
* See the included file LICENSE for details.
*/
#include "group-ws.h"
#include "group-cw.h"
#include "grouppholder.h"
-#include "groupedpholder.h"
#include "framedpholder.h"
#include "float-placement.h"
#include "resize.h"
if(ph!=NULL)
ph=pholder_either((WPHolder*)create_framedpholder(ph, &fp), ph);
- if(ph!=NULL)
- ph=pholder_either((WPHolder*)create_groupedpholder((WPHolder*)ph), 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;
}
}
-WPHolder *groupws_get_rescue_pholder_for(WGroupWS *ws,
- WRegion *forwhat)
-{
- WGroupAttachParams ap=GROUPATTACHPARAMS_INIT;
- WFramedParam fp=FRAMEDPARAM_INIT;
- WPHolder *ph;
-
- ap.geom_set=TRUE;
- ap.geom=REGION_GEOM(forwhat);
-
- ap.geom_weak_set=1;
- ap.geom_weak=(REGION_PARENT(forwhat)!=REGION_PARENT(ws)
- ? REGION_RQGEOM_WEAK_X|REGION_RQGEOM_WEAK_Y
- : 0);
-
- ph=(WPHolder*)create_grouppholder(&ws->grp, NULL, &ap);
-
- return pholder_either((WPHolder*)create_framedpholder(ph, &fp), ph);
-}
-
-
static bool group_empty_for_bottom_stdisp(WGroup *ws)
{
WGroupIterTmp tmp;
static WRegion *groupws_managed_disposeroot(WGroupWS *ws, WRegion *reg)
{
if(group_bottom(&ws->grp)==reg){
- if(group_empty_for_bottom_stdisp(&ws->grp)){
- WRegion *tmpr=region_disposeroot((WRegion*)ws);
- return (tmpr!=NULL ? tmpr : reg);
- }
+ if(group_empty_for_bottom_stdisp(&ws->grp))
+ return region_disposeroot((WRegion*)ws);
}
return reg;
{(DynFun*)region_handle_drop,
(DynFun*)groupws_handle_drop},
- {(DynFun*)region_get_rescue_pholder_for,
- (DynFun*)groupws_get_rescue_pholder_for},
-
{region_manage_stdisp,
group_manage_stdisp},