X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ioncore%2Fstacking.c;fp=ioncore%2Fstacking.c;h=296e054abef0d7720beed73f286b849b8bf02862;hb=a6561c9679cd701b0d50c3cfd44e4664f7df2b2f;hp=c96c5387c1a914980754302389f66d95cd6259b6;hpb=cd09055902de482a1be019bf4b4efdae64c98d35;p=ion3.git diff --git a/ioncore/stacking.c b/ioncore/stacking.c index c96c538..296e054 100644 --- a/ioncore/stacking.c +++ b/ioncore/stacking.c @@ -596,6 +596,12 @@ static bool mapped_filt(WStacking *st, void *unused) } +static bool mapped_filt_neq(WStacking *st, void *st_neq) +{ + return (st!=(WStacking*)st_neq && mapped_filt(st, NULL)); +} + + static bool mgr_filt(WStacking *st, void *mgr_) { return (st->reg!=NULL && REGION_MANAGER(st->reg)==(WRegion*)mgr_); @@ -622,5 +628,16 @@ uint stacking_min_level_mapped(WStacking *stacking) } +bool stacking_must_focus(WStacking *stacking, WStacking *st) +{ + WStacking *stf=stacking_find_to_focus(stacking, NULL, + mapped_filt_neq, NULL, st); + + return (stf==NULL || + (st->level>stf->level && + st->level>=STACKING_LEVEL_MODAL1)); +} + + /*}}}*/