From fee289cd0632adcc563378c41350834207436648 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 12 May 2017 11:46:33 +0200 Subject: [PATCH] gdk: Add gdk_rectangle_contains_point() call A little helper function for a somewhat common operation. --- docs/reference/gdk/gdk4-sections.txt | 1 + gdk/gdkrectangle.c | 25 +++++++++++++++++++++++++ gdk/gdkrectangle.h | 5 +++++ 3 files changed, 31 insertions(+) diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt index 25891c8d3b..2f60092613 100644 --- a/docs/reference/gdk/gdk4-sections.txt +++ b/docs/reference/gdk/gdk4-sections.txt @@ -534,6 +534,7 @@ GdkRectangle gdk_rectangle_intersect gdk_rectangle_union gdk_rectangle_equal +gdk_rectangle_contains_point gdk_rectangle_get_type diff --git a/gdk/gdkrectangle.c b/gdk/gdkrectangle.c index 491de6c1e5..6e6fa61eb2 100644 --- a/gdk/gdkrectangle.c +++ b/gdk/gdkrectangle.c @@ -136,6 +136,31 @@ gdk_rectangle_intersect (const GdkRectangle *src1, return return_val; } +/** + * gdk_rectangle_contains_point: + * @rect: a #GdkRectangle + * @x: X coordinate + * @y: Y coordinate + * + * Returns #TRUE if @rect contains the point described by @x and @y. + * + * Returns: #TRUE if @rect contains the point + * + * Since: 3.90 + **/ +gboolean +gdk_rectangle_contains_point (const GdkRectangle *rect, + int x, + int y) +{ + g_return_val_if_fail (rect != NULL, FALSE); + + return x >= rect->x && + x < rect->x + rect->width && + y >= rect->y && + y < rect->y + rect->height; +} + /** * gdk_rectangle_equal: * @rect1: a #GdkRectangle diff --git a/gdk/gdkrectangle.h b/gdk/gdkrectangle.h index 7c0252ff0b..225f048f59 100644 --- a/gdk/gdkrectangle.h +++ b/gdk/gdkrectangle.h @@ -49,6 +49,11 @@ GDK_AVAILABLE_IN_3_20 gboolean gdk_rectangle_equal (const GdkRectangle *rect1, const GdkRectangle *rect2); +GDK_AVAILABLE_IN_3_90 +gboolean gdk_rectangle_contains_point (const GdkRectangle *rect, + int x, + int y); + GDK_AVAILABLE_IN_ALL GType gdk_rectangle_get_type (void) G_GNUC_CONST;