16:23:53jackdanielso the problem originates in update-mirror-geometry (which is very hairy)
16:48:16jackdanielit seems that port-set-mirror-transformation doesn't take into account window decorations
18:51:31nyefjackdaniel: If you haven't already dug up a copy of the ICCCM, you may wish to now. You're deep into its territory when you're dealing with an X window manager.
20:31:54jackdanielgetting it right is more a problem with our off-by-one roundings, because conceptually it is simple: we take drawble-x/drawable-y in window-local coordinates indicating upper-left corner (including borders)
20:32:13jackdanieland then we call (transform-position mirror-transformation (- drawable-x) (- drawable-y))
20:32:36jackdanieland set drawable-x / drawable-y to this values (instead of transforming 0 0)
20:33:09jackdanielbut said off-by-one errors make it offset by 2 pixels on X-axis and by 1 pixel on Y-axis on each call
20:33:28jackdanielthat's why I think we have off-by-one(-or-two) errors in transformation
20:45:03nyef... Do you get similar transform errors with expose / repaint regions?
20:56:03jackdanielno, only when the mirror transformation is updated in update-mirror-geometry
20:56:30jackdaniel(which may be tirggered for instance by invoking full layout protocol)
20:56:54jackdanieland I see dozen of round intervened with floors in code
20:57:23jackdanielso I suppose it is no wonder we get hit be pixel or two