[gtk+] container: Don't create too-large clips
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] container: Don't create too-large clips
- Date: Wed, 20 Jan 2016 18:44:54 +0000 (UTC)
commit da31eb4f64eb9218126277851a16f38134fe1f7f
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Jan 20 13:42:45 2016 -0500
container: Don't create too-large clips
gdk_rectangle_union will happily add all the worlds pixels
to the union if the initial rectangle is initialized to all
zeros. Therefore, explicitly check for an empty rectangle
before calling it.
gtk/gtkcontainer.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index 86501d7..090b4d7 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -3686,8 +3686,9 @@ gtk_container_should_propagate_draw (GtkContainer *container,
static void
union_with_clip (GtkWidget *widget,
- gpointer clip)
+ gpointer data)
{
+ GdkRectangle *clip = data;
GtkAllocation widget_clip;
if (!gtk_widget_is_visible (widget) ||
@@ -3696,7 +3697,10 @@ union_with_clip (GtkWidget *widget,
gtk_widget_get_clip (widget, &widget_clip);
- gdk_rectangle_union (&widget_clip, clip, clip);
+ if (clip->width == 0 || clip->height == 0)
+ *clip = widget_clip;
+ else
+ gdk_rectangle_union (&widget_clip, clip, clip);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]