X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fgroup-cw.c;h=5a2a32d3ceda3377fe3a19f95a057363f612335a;hb=b355f9832d094cdb9e700e01cbc063e3fdb4f58b;hp=0084ee204343d993e811e511470376ab2775f713;hpb=471a5e5f9928e2d324b2e10422a420f458bd63ff;p=ion3.git diff --git a/ioncore/group-cw.c b/ioncore/group-cw.c index 0084ee2..5a2a32d 100644 --- a/ioncore/group-cw.c +++ b/ioncore/group-cw.c @@ -3,10 +3,7 @@ * * Copyright (c) Tuomo Valkonen 1999-2007. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #include @@ -72,9 +69,9 @@ static WPHolder *groupcw_transient_pholder(WGroupCW *cwg, WPHolder *groupcw_prepare_manage(WGroupCW *cwg, const WClientWin *cwin, - const WManageParams *param, int redir) + const WManageParams *param, int priority) { - if(redir==MANAGE_REDIR_STRICT_YES) + if(!MANAGE_PRIORITY_OK(priority, MANAGE_PRIORITY_GROUP)) return NULL; /* Only catch windows with transient mode set to current here. */ @@ -119,6 +116,23 @@ WPHolder *groupcw_prepare_manage_transient(WGroupCW *cwg, } +static WRegion *groupcw_managed_disposeroot(WGroupCW *ws, WRegion *reg) +{ + WGroupIterTmp tmp; + WStacking *st; + WRegion *tmpr; + + FOR_ALL_NODES_IN_GROUP(&ws->grp, st, tmp){ + if(st!=ws->grp.managed_stdisp && st->reg!=reg){ + return reg; + } + } + + tmpr=region_disposeroot((WRegion*)ws); + return (tmpr!=NULL ? tmpr : reg); +} + + /*}}}*/ @@ -180,6 +194,14 @@ void groupcw_managed_notify(WGroupCW *cwg, WRegion *reg, WRegionNotify how) /* Title has changed */ region_notify_change((WRegion*)cwg, how); } + + group_managed_notify(&cwg->grp, reg, how); +} + + +void groupcw_bottom_set(WGroupCW *cwg) +{ + region_notify_change((WRegion*)cwg, ioncore_g.notifies.name); } @@ -196,8 +218,6 @@ bool groupcw_init(WGroupCW *cwg, WWindow *parent, const WFitParams *fp) if(!group_init(&(cwg->grp), parent, fp)) return FALSE; - cwg->grp.bottom_last_close=TRUE; - region_add_bindmap((WRegion*)cwg, ioncore_groupcw_bindmap); return TRUE; @@ -274,12 +294,18 @@ static DynFunTab groupcw_dynfuntab[]={ {(DynFun*)region_prepare_manage_transient, (DynFun*)groupcw_prepare_manage_transient}, + + {(DynFun*)region_managed_disposeroot, + (DynFun*)groupcw_managed_disposeroot}, {(DynFun*)region_displayname, (DynFun*)groupcw_displayname}, {region_managed_notify, groupcw_managed_notify}, + + {group_bottom_set, + groupcw_bottom_set}, END_DYNFUNTAB };