X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ioncore%2Fmplex.c;h=1d5109f9958449f11ad278ef5bffe5da3fb5e140;hb=4caa969e86b611255dddf085563d32e5e0e8f323;hp=71943a4595ca6829fe6da5ea8b267669eb3fe320;hpb=d2a43a53786878c1273313249d3b49f6cd559b00;p=ion3.git diff --git a/ioncore/mplex.c b/ioncore/mplex.c index 71943a4..1d5109f 100644 --- a/ioncore/mplex.c +++ b/ioncore/mplex.c @@ -231,8 +231,8 @@ WRegion *mplex_mx_current(WMPlex *mplex) /*EXTL_DOC - * Returns the \var{n}:th object managed by \var{mplex} on the - * \var{l}:th layer. + * Returns the \var{n}:th object on the mutually exclusive + * list of \var{mplex}. */ EXTL_SAFE EXTL_EXPORT_MEMBER @@ -505,6 +505,27 @@ static void mplex_managed_rqgeom(WMPlex *mplex, WRegion *sub, } +void mplex_set_szplcy(WMPlex *mplex, WRegion *sub, WSizePolicy szplcy) +{ + WStacking *node; + + node=mplex_find_stacking(mplex, sub); + + if(node!=NULL) + node->szplcy=szplcy; +} + + +WSizePolicy mplex_get_szplcy(WMPlex *mplex, WRegion *sub) +{ + WStacking *node; + + node=mplex_find_stacking(mplex, sub); + + return (node==NULL ? SIZEPOLICY_DEFAULT : node->szplcy); +} + + /*}}}*/ @@ -1280,6 +1301,9 @@ bool mplex_do_attach_final(WMPlex *mplex, WRegion *reg, WMPlexPHolder *ph) region_set_manager(reg, (WRegion*)mplex); + if(param->flags&MPLEX_ATTACH_PASSIVE) + reg->flags|=REGION_SKIP_FOCUS; + if(!(param->flags&MPLEX_ATTACH_WHATEVER)){ WFitParams fp; @@ -1382,7 +1406,6 @@ WRegion *mplex_attach_simple(WMPlex *mplex, WRegion *reg, int flags) static void get_params(WMPlex *mplex, ExtlTab tab, int mask, WMPlexAttachParams *par) { - int layer=1; int tmp; char *tmpstr; int ok=~mask; @@ -1408,6 +1431,9 @@ static void get_params(WMPlex *mplex, ExtlTab tab, int mask, if(extl_table_is_bool_set(tab, "hidden")) par->flags|=MPLEX_ATTACH_HIDDEN&ok; + if(extl_table_is_bool_set(tab, "passive")) + par->flags|=MPLEX_ATTACH_PASSIVE&ok; + if(extl_table_is_bool_set(tab, "pseudomodal")) par->flags|=MPLEX_ATTACH_PSEUDOMODAL&ok; @@ -1489,6 +1515,7 @@ WRegion *mplex_attach_new_(WMPlex *mplex, WMPlexAttachParams *par, * \var{hidden} & (boolean) Attach hidden, if not prevented * by e.g. the mutually exclusive list being empty. * This option overrides \var{switchto}. \\ + * \var{passive} & (boolean) Skip in certain focusing operations. \\ * \var{pseudomodal} & (boolean) The attached region is ``pseudomodal'' * if the stacking level dictates it to be modal. * This means that the region may be hidden to display @@ -1772,11 +1799,12 @@ static bool do_attach_stdisp(WRegion *mplex, WRegion *reg, void *unused) * * \begin{tabularx}{\linewidth}{lX} * \tabhead{Field & Description} - * \var{pos} & The corner of the screen to place the status display - * in: one of \codestr{tl}, \codestr{tr}, \codestr{bl} + * \var{pos} & (string) The corner of the screen to place the status + * display in: one of \codestr{tl}, \codestr{tr}, \codestr{bl} * or \codestr{br}. \\ - * \var{action} & If this field is set to \codestr{keep}, \var{corner} - * and \var{orientation} are changed for the existing + * \var{fullsize} & (boolean) Waste all available space. \\ + * \var{action} & (string) If this field is set to \codestr{keep}, + * \var{pos} and \var{fullsize} are changed for the existing * status display. If this field is set to \codestr{remove}, * the existing status display is removed. If this * field is not set or is set to \codestr{replace}, a