On Wed, Aug 5, 2009 at 2:45 PM, Wolfgang Schuster <schuster.wolfgang@googlemail.com> wrote:

Am 05.08.2009 um 10:47 schrieb Derek CORDEIRO:


\definelayer[mybg][width=\paperwidth,height=\paperheight,state=repeat]
\setlayer    [mybg]
       [hoffset=1cm, voffset=1cm]
       {\framed[frame=on, width=3cm, height=2cm]{\externalfigure[cow][width=1cm]
}}
\setupbackgrounds[page][background=mybg]

\starttext
\dorecurse{6}{\input tufte\par}
\stoptext

It still does not work(still layer only on first page in Mk IV). What am I doing wrong?

A typo in pack-lyr.mkiv for the \dodoflushlayer macro.

In MkII a line of the macro is

      \doifnotvalue{\??ll#2\c!position}\v!yes
        {\doifvalue{\??ll#2\c!repeat}\v!yes\!!donecfalse
         \doifvalue{\??ll#2\c!state}\v!repeat\!!donecfalse}%

while in MkIV it's

    \ifx\@@currentlayerposition\v!yes
      \edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat\endcsname}%
    % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state\endcsname}% actually this is already set
      \ifx\@@currentlayerrepeat\v!yes
        \!!donecfalse
      \else\ifx\@@currentlayerstate\v!repeat
        \!!donecfalse
      \fi\fi
    \fi

MkII expects position ≠ yes while MkIV continues only when position = yes
what's wrong, you can add \unless before the \ifx and the layer mechanism works.

    \unless\ifx\@@currentlayerposition\v!yes
      \edef\@@currentlayerrepeat{\csname\??ll\currentlayer\c!repeat\endcsname}%
    % \edef\@@currentlayerstate {\csname\??ll\currentlayer\c!state\endcsname}% actually this is already set
      \ifx\@@currentlayerrepeat\v!yes
        \!!donecfalse
      \else\ifx\@@currentlayerstate\v!repeat
        \!!donecfalse
      \fi\fi
    \fi
  \fi



Thanks a lot, works great.

Regards,
Derek