Lisp HUG Maillist Archive

(setf capi:pinboard-pane-position) doesn't change position?

I've written a description of a pinboard layout to file and while
trying to recreate the structure, I occasionally end up with objects
at 0,0 rather than the position they're supposed to be at.  I haven't
been able to track down the exact cause yet, and it's not reliably
reproducible.  As such I'll try to follow up when I have more
information, but just in case this is something someone's seen before,
 any ideas what might make something like this fail?

                   (setf (capi:pinboard-pane-position vertex)
                         (values x y))
                   (multiple-value-bind (xx yy)
                       (capi:pinboard-pane-position vertex)
                     (assert (and (eql x xx) (eql y yy))))

I.e., immediately after setting the capi:pinboard-pane-position of a
vertex, the values returned by (capi:pinboard-pane-position vertex)
don't match.  Invalidating the pane constraints between setting and
retrieving the values makes the assertion fail less often, but doesn't
completely prevent it.

Two things that might be relevant:  the pane isn't displayed on screen
while this is happening, and the position might be outside of the
current boundaries of the pane, making it grow.

Thoughts?  Similar issues?

Thanks in advance,  //JT

-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/


Re: (setf capi:pinboard-pane-position) doesn't change position?

I wish I had an unsend button—it looks like making sure that
everything happens in the pane process (i.e., using
capi:apply-in-pane-process) fixes the problem.

On Fri, Mar 12, 2010 at 2:22 PM, Joshua TAYLOR <tayloj@cs.rpi.edu> wrote:
> I've written a description of a pinboard layout to file and while
> trying to recreate the structure, I occasionally end up with objects
> at 0,0 rather than the position they're supposed to be at.  I haven't
> been able to track down the exact cause yet, and it's not reliably
> reproducible.  As such I'll try to follow up when I have more
> information, but just in case this is something someone's seen before,
>  any ideas what might make something like this fail?
>
>                   (setf (capi:pinboard-pane-position vertex)
>                         (values x y))
>                   (multiple-value-bind (xx yy)
>                       (capi:pinboard-pane-position vertex)
>                     (assert (and (eql x xx) (eql y yy))))
>
> I.e., immediately after setting the capi:pinboard-pane-position of a
> vertex, the values returned by (capi:pinboard-pane-position vertex)
> don't match.  Invalidating the pane constraints between setting and
> retrieving the values makes the assertion fail less often, but doesn't
> completely prevent it.
>
> Two things that might be relevant:  the pane isn't displayed on screen
> while this is happening, and the position might be outside of the
> current boundaries of the pane, making it grow.
>
> Thoughts?  Similar issues?
>
> Thanks in advance,  //JT
>
> --
> Joshua Taylor, http://www.cs.rpi.edu/~tayloj/
>



-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/


Updated at: 2020-12-10 08:39 UTC