From 00a6e3be9256c0856d2c59dde61ff3ee0fb3fd64 Mon Sep 17 00:00:00 2001 From: David Odin Date: Mon, 16 Feb 2004 22:59:26 +0000 Subject: [PATCH] don't try to draw more than 32767 segments at a time, since XDrawSegments * gdk/gdkdraw.c (gdk_draw_segments): don't try to draw more than 32767 segments at a time, since XDrawSegments cannot handle more than this. fixes bug #122026. --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-4 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gdk/gdkdraw.c | 10 ++++++++++ 6 files changed, 45 insertions(+) diff --git a/ChangeLog b/ChangeLog index f279fd42d1..5c9ee8db83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-02-16 DindinX + + * gdk/gdkdraw.c (gdk_draw_segments): don't try to draw more than 32767 + segments at a time, since XDrawSegments cannot handle more than this. + + fixes bug #122026. + Mon Feb 16 18:26:39 2004 Soeren Sandmann * gtk/gtktoolbar.c (gtk_toolbar_set_child_property): Call diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index f279fd42d1..5c9ee8db83 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2004-02-16 DindinX + + * gdk/gdkdraw.c (gdk_draw_segments): don't try to draw more than 32767 + segments at a time, since XDrawSegments cannot handle more than this. + + fixes bug #122026. + Mon Feb 16 18:26:39 2004 Soeren Sandmann * gtk/gtktoolbar.c (gtk_toolbar_set_child_property): Call diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index f279fd42d1..5c9ee8db83 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +2004-02-16 DindinX + + * gdk/gdkdraw.c (gdk_draw_segments): don't try to draw more than 32767 + segments at a time, since XDrawSegments cannot handle more than this. + + fixes bug #122026. + Mon Feb 16 18:26:39 2004 Soeren Sandmann * gtk/gtktoolbar.c (gtk_toolbar_set_child_property): Call diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index f279fd42d1..5c9ee8db83 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +2004-02-16 DindinX + + * gdk/gdkdraw.c (gdk_draw_segments): don't try to draw more than 32767 + segments at a time, since XDrawSegments cannot handle more than this. + + fixes bug #122026. + Mon Feb 16 18:26:39 2004 Soeren Sandmann * gtk/gtktoolbar.c (gtk_toolbar_set_child_property): Call diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index f279fd42d1..5c9ee8db83 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2004-02-16 DindinX + + * gdk/gdkdraw.c (gdk_draw_segments): don't try to draw more than 32767 + segments at a time, since XDrawSegments cannot handle more than this. + + fixes bug #122026. + Mon Feb 16 18:26:39 2004 Soeren Sandmann * gtk/gtktoolbar.c (gtk_toolbar_set_child_property): Call diff --git a/gdk/gdkdraw.c b/gdk/gdkdraw.c index 97905bf566..342a6d0926 100644 --- a/gdk/gdkdraw.c +++ b/gdk/gdkdraw.c @@ -832,6 +832,16 @@ gdk_draw_segments (GdkDrawable *drawable, g_return_if_fail (GDK_IS_GC (gc)); g_return_if_fail (nsegs >= 0); + while (num_segments >= 32000) + { + GDK_DRAWABLE_GET_CLASS (drawable)->draw_segments (drawable, + gc, + segs, + 32000); + num_segments -= 32000; + segments += 32000; + } + GDK_DRAWABLE_GET_CLASS (drawable)->draw_segments (drawable, gc, segs, nsegs); }