diff --git a/gdk/gdk.h b/gdk/gdk.h index 092226d8b..e80c838b9 100644 --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -770,6 +770,9 @@ guchar gdk_color_context_get_index_from_palette (GdkColorContext *cc, GdkRegion* gdk_region_new (void); void gdk_region_destroy (GdkRegion *region); +void gdk_region_get_clipbox(GdkRegion *region, + GdkRectangle *rectangle); + gboolean gdk_region_empty (GdkRegion *region); gboolean gdk_region_equal (GdkRegion *region1, GdkRegion *region2); diff --git a/gdk/gdkregion.c b/gdk/gdkregion.c index 4b5c1c866..19b921d03 100644 --- a/gdk/gdkregion.c +++ b/gdk/gdkregion.c @@ -82,6 +82,25 @@ gdk_region_equal (GdkRegion *region1, return XEqualRegion (private1->xregion, private2->xregion); } +void +gdk_region_get_clipbox(GdkRegion *region, + GdkRectangle *rectangle) +{ + GdkRegionPrivate *rp; + XRectangle r; + + g_return_if_fail(region != NULL); + g_return_if_fail(rectangle != NULL); + + rp = (GdkRegionPrivate *)region; + XClipBox(rp->xregion, &r); + + rectangle->x = r.x; + rectangle->y = r.y; + rectangle->width = r.width; + rectangle->height = r.height; +} + gboolean gdk_region_point_in (GdkRegion *region, gint x, diff --git a/gdk/x11/gdkregion-x11.c b/gdk/x11/gdkregion-x11.c index 4b5c1c866..19b921d03 100644 --- a/gdk/x11/gdkregion-x11.c +++ b/gdk/x11/gdkregion-x11.c @@ -82,6 +82,25 @@ gdk_region_equal (GdkRegion *region1, return XEqualRegion (private1->xregion, private2->xregion); } +void +gdk_region_get_clipbox(GdkRegion *region, + GdkRectangle *rectangle) +{ + GdkRegionPrivate *rp; + XRectangle r; + + g_return_if_fail(region != NULL); + g_return_if_fail(rectangle != NULL); + + rp = (GdkRegionPrivate *)region; + XClipBox(rp->xregion, &r); + + rectangle->x = r.x; + rectangle->y = r.y; + rectangle->width = r.width; + rectangle->height = r.height; +} + gboolean gdk_region_point_in (GdkRegion *region, gint x,