From dddad8fb77a944a470934f7097abe3de91d3b80e Mon Sep 17 00:00:00 2001 From: simon Date: Sun, 28 Aug 2005 13:52:58 +0000 Subject: [PATCH] There seems to be some odd behaviour when GTK is asked to draw an outline polygon with a clipping rectangle active. I don't know or care whether this is GTK or my X server or what, but I'm working around it by drawing the lines myself, which seems to sort it out. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@6227 cda61777-01e9-0310-a592-d414129be87e --- gtk.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk.c b/gtk.c index b72752a..1cf5136 100644 --- a/gtk.c +++ b/gtk.c @@ -373,7 +373,17 @@ void gtk_draw_poly(void *handle, int *coords, int npoints, } assert(outlinecolour >= 0); gdk_gc_set_foreground(fe->gc, &fe->colours[outlinecolour]); - gdk_draw_polygon(fe->pixmap, fe->gc, FALSE, points, npoints); + + /* + * In principle we ought to be able to use gdk_draw_polygon for + * the outline as well. In fact, it turns out to interact badly + * with a clipping region, for no terribly obvious reason, so I + * draw the outline as a sequence of lines instead. + */ + for (i = 0; i < npoints; i++) + gdk_draw_line(fe->pixmap, fe->gc, + points[i].x, points[i].y, + points[(i+1)%npoints].x, points[(i+1)%npoints].y); sfree(points); } -- 2.11.0