[gimp/soc-2011-seamless-clone2] libgimpwidgets: add gdk_cairo_get_clip_rectangle() to gimp3migration.[ch]



commit 88216ad2f7f1ad7d98cf75339c21d72d29979026
Author: Michael Natterer <mitch gimp org>
Date:   Fri Apr 19 02:21:45 2013 +0200

    libgimpwidgets: add gdk_cairo_get_clip_rectangle() to gimp3migration.[ch]

 libgimpwidgets/gimp3migration.c |   29 +++++++++++++++++++++++++++++
 libgimpwidgets/gimp3migration.h |    4 ++++
 2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/libgimpwidgets/gimp3migration.c b/libgimpwidgets/gimp3migration.c
index a32a2ed..44eca9a 100644
--- a/libgimpwidgets/gimp3migration.c
+++ b/libgimpwidgets/gimp3migration.c
@@ -21,6 +21,8 @@
 
 #include "config.h"
 
+#include <math.h>
+
 #include <gtk/gtk.h>
 
 #include "gimpwidgetstypes.h"
@@ -177,3 +179,30 @@ gtk_widget_get_modifier_mask (GtkWidget         *widget,
 }
 
 #endif /* GTK+ 3.3 */
+
+gboolean
+gdk_cairo_get_clip_rectangle (cairo_t      *cr,
+                              GdkRectangle *rect)
+{
+  double x1, y1, x2, y2;
+  gboolean clip_exists;
+
+  cairo_clip_extents (cr, &x1, &y1, &x2, &y2);
+
+  clip_exists = x1 < x2 && y1 < y2;
+
+  if (rect)
+    {
+      x1 = floor (x1);
+      y1 = floor (y1);
+      x2 = ceil (x2);
+      y2 = ceil (y2);
+
+      rect->x      = CLAMP (x1,      G_MININT, G_MAXINT);
+      rect->y      = CLAMP (y1,      G_MININT, G_MAXINT);
+      rect->width  = CLAMP (x2 - x1, G_MININT, G_MAXINT);
+      rect->height = CLAMP (y2 - y1, G_MININT, G_MAXINT);
+    }
+
+  return clip_exists;
+}
diff --git a/libgimpwidgets/gimp3migration.h b/libgimpwidgets/gimp3migration.h
index bdf26ab..daf338c 100644
--- a/libgimpwidgets/gimp3migration.h
+++ b/libgimpwidgets/gimp3migration.h
@@ -67,4 +67,8 @@ GdkModifierType gtk_widget_get_modifier_mask    (GtkWidget         *widget,
                                                  GdkModifierIntent  intent);
 #endif
 
+gboolean        gdk_cairo_get_clip_rectangle    (cairo_t           *cr,
+                                                 GdkRectangle      *rect);
+
+
 #endif /* __GIMP_3_MIGRATION_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]