+/*extern WRegion *ioncore_newly_created;*/
+
+
+static WPHolder *try_target(WClientWin *cwin, const WManageParams *param,
+ const char *target)
+{
+ WRegion *r=ioncore_lookup_region(target, NULL);
+
+ if(r==NULL)
+ return NULL;
+
+ return region_prepare_manage(r, cwin, param, MANAGE_REDIR_PREFER_NO);
+}
+
+
+static bool handle_target_winprops(WClientWin *cwin, const WManageParams *param,
+ WScreen *scr, WPHolder **ph_ret)
+{
+ char *layout=NULL, *target=NULL;
+ WPHolder *ph=NULL;
+ bool mgd=FALSE;
+
+ if(extl_table_gets_s(cwin->proptab, "target", &target))
+ ph=try_target(cwin, param, target);
+
+ if(ph==NULL && extl_table_gets_s(cwin->proptab, "new_group", &layout)){
+ ExtlTab lo=ioncore_get_layout(layout);
+
+ free(layout);
+
+ if(lo!=extl_table_none()){
+ WMPlexAttachParams par=MPLEXATTACHPARAMS_INIT;
+ int mask=MPLEX_ATTACH_SWITCHTO;
+ WRegion *reg;
+
+ if(param->switchto)
+ par.flags|=MPLEX_ATTACH_SWITCHTO;
+
+ /*ioncore_newly_created=(WRegion*)cwin;*/
+
+ reg=mplex_attach_new_(&scr->mplex, &par, mask, lo);
+
+ extl_unref_table(lo);
+
+ /*ioncore_newly_created=NULL;*/
+
+ mgd=(region_manager((WRegion*)cwin)!=NULL);
+
+ if(reg!=NULL && !mgd){
+ if(target!=NULL)
+ ph=try_target(cwin, param, target);
+
+ if(ph==NULL){
+ ph=region_prepare_manage(reg, cwin, param,
+ MANAGE_REDIR_PREFER_YES);
+
+ if(ph==NULL)
+ destroy_obj((Obj*)reg);
+ }
+ }
+ }
+ }
+
+ if(target!=NULL)
+ free(target);
+
+ *ph_ret=ph;
+
+ return mgd;
+}
+
+