summaryrefslogtreecommitdiff
path: root/gdk/gdkprivate.h
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2007-01-05 06:16:32 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2007-01-05 06:16:32 +0000
commitb4328913d88e72d87d25e7f9031f001862624aa4 (patch)
tree2556fb04251eaeab93d370749a4557e9812cfee6 /gdk/gdkprivate.h
parentd6e4485f9fe495d146cf0b9d7f951662aea55e1a (diff)
downloadgtk+-b4328913d88e72d87d25e7f9031f001862624aa4.tar.gz
Avoid overflow when converting coordinates to Pango units. (#332266, Jody
2007-01-05 Behdad Esfahbod <behdad@gnome.org> * gdk/gdkprivate.h: * gdk/gdkpango.c (gdk_draw_layout_line_with_colors), (gdk_draw_layout_with_colors): * gdk/gdkwindow.c (gdk_window_draw_glyphs_transformed): Avoid overflow when converting coordinates to Pango units. (#332266, Jody Goldberg) svn path=/trunk/; revision=17075
Diffstat (limited to 'gdk/gdkprivate.h')
-rw-r--r--gdk/gdkprivate.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gdk/gdkprivate.h b/gdk/gdkprivate.h
index 4dcbfe6d60..95af2e151f 100644
--- a/gdk/gdkprivate.h
+++ b/gdk/gdkprivate.h
@@ -50,6 +50,16 @@ void gdk_synthesize_window_state (GdkWindow *window,
GdkWindowState unset_flags,
GdkWindowState set_flags);
+/* Tests whether a pair of x,y may cause overflows when converted to Pango
+ * units (multiplied by PANGO_SCALE). We don't allow the entire range, leave
+ * some space for additions afterwards, to be safe...
+ */
+#define GDK_PANGO_UNITS_OVERFLOWS(x,y) (G_UNLIKELY ( \
+ (y) >= PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2 || \
+ (x) >= PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2 || \
+ (y) <=-PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2 || \
+ (x) <=-PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2))
+
G_END_DECLS
#endif /* __GDK_PRIVATE_H__ */