Attachment "None" to
ticket [402472ffff]
added by
pgbaum
2000-11-22 17:23:40.
Items in a canvas, which is embedded in another canvas, are
clipped by the inner canvas. This clipping is not done in
postscript output of the outer canvas.
tk-version:
diff is against 8.4a2; bug is also in 8.0 and 8.3 (Windows
and Linux)
reproducible script:
canvas .outer -bg red -width 120 -height 120
pack .outer
canvas .inner -bg white -width 100 -height 100
.outer create window 10 10 -anchor nw -window .inner
.inner create oval -5 -5 105 105 -fill blue
update
.outer postscript -file qqq.ps
result:
in the postscript file the oval is an oval.
desired result:
The oval should have (due to the clipping) corners as
in the screen view.
This patch works for me. I'm not a postscript expert. Could
someone with more knowledge look, if this is the right way
and place to do it?
Second: outer is not drawn in red in the ps-file. I have
not yet a patch for this.
--- tkCanvWind.orig.c Wed Nov 8 22:01:28 2000
+++ tkCanvWind.c Thu Nov 9 20:18:11 2000
@@ -875,6 +875,11 @@
Tcl_DStringFree(&buffer2);
if (result == TCL_OK) {
+ sprintf (buffer,
+ "0 %d moveto %d 0 rlineto 0 -%d rlineto -%d",
+ height, width, height, width);
+ Tcl_AppendResult(interp, buffer,
+ " 0 rlineto closepath clip newpath\n", (char *) NULL);
Tcl_AppendResult(interp,
"50 dict begin\nsave\ngsave\n",
(char *) NULL);