[gtk+] Don't assert on zero width/height in render functions
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Don't assert on zero width/height in render functions
- Date: Mon, 28 Feb 2011 12:54:21 +0000 (UTC)
commit 9707d8a3e679cef15106f7fc8406464dc2646a3f
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Feb 28 07:52:59 2011 -0500
Don't assert on zero width/height in render functions
We can just silently ignore those rendering calls.
https://bugzilla.gnome.org/show_bug.cgi?id=643041
gtk/gtkstylecontext.c | 61 +++++++++++++++++++++++++++++-------------------
1 files changed, 37 insertions(+), 24 deletions(-)
---
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 058f752..b836933 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -3693,8 +3693,9 @@ gtk_render_check (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -3743,8 +3744,9 @@ gtk_render_option (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -3791,7 +3793,9 @@ gtk_render_arrow (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (size > 0);
+
+ if (size <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -3841,8 +3845,9 @@ gtk_render_background (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -3893,8 +3898,9 @@ gtk_render_frame (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -3905,7 +3911,7 @@ gtk_render_frame (GtkStyleContext *context,
_gtk_theming_engine_set_context (priv->theming_engine, context);
engine_class->render_frame (priv->theming_engine, cr, x, y, width, height);
-
+
cairo_restore (cr);
}
@@ -3942,8 +3948,9 @@ gtk_render_expander (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -3988,8 +3995,9 @@ gtk_render_focus (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -4123,8 +4131,9 @@ gtk_render_slider (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -4179,11 +4188,12 @@ gtk_render_frame_gap (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
g_return_if_fail (xy0_gap <= xy1_gap);
g_return_if_fail (xy0_gap >= 0);
+ if (width <= 0 || height <= 0)
+ return;
+
if (gap_side == GTK_POS_LEFT ||
gap_side == GTK_POS_RIGHT)
g_return_if_fail (xy1_gap <= height);
@@ -4240,8 +4250,9 @@ gtk_render_extension (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -4289,8 +4300,9 @@ gtk_render_handle (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
@@ -4333,8 +4345,9 @@ gtk_render_activity (GtkStyleContext *context,
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- g_return_if_fail (width > 0);
- g_return_if_fail (height > 0);
+
+ if (width <= 0 || height <= 0)
+ return;
priv = context->priv;
engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]