* Sven Neumann <sven@convergence.de>
*/
-#include <config.h>
+#undef GDK_DISABLE_DEPRECATED
+
+#include "config.h"
#include "gdk.h"
#include <string.h>
if (!object_type)
{
- static const GTypeInfo object_info =
+ const GTypeInfo object_info =
{
sizeof (GdkGCDirectFBClass),
(GBaseInitFunc) NULL,
GdkGC *gc = GDK_GC (object);
GdkGCDirectFB *private = GDK_GC_DIRECTFB (gc);
- if (private->clip_region)
- gdk_region_destroy (private->clip_region);
+ if (private->clip_region.numRects)
+ temp_region_deinit (&private->clip_region);
if (private->values.clip_mask)
g_object_unref (private->values.clip_mask);
if (private->values.stipple)
if (oldpm)
g_object_unref (oldpm);
- if (private->clip_region)
- {
- gdk_region_destroy (private->clip_region);
- private->clip_region = NULL;
- }
+ temp_region_reset (&private->clip_region);
}
if (values_mask & GDK_GC_SUBWINDOW)
void
-_gdk_windowing_gc_set_clip_region (GdkGC *gc,
- GdkRegion *region)
+_gdk_windowing_gc_set_clip_region (GdkGC *gc,
+ const GdkRegion *region,
+ gboolean reset_origin)
{
GdkGCDirectFB *data;
data = GDK_GC_DIRECTFB (gc);
- if (region == data->clip_region)
+ if (region == &data->clip_region)
return;
- if (data->clip_region)
- {
- gdk_region_destroy (data->clip_region);
- data->clip_region = NULL;
- }
-
if (region)
- data->clip_region = gdk_region_copy (region);
+ temp_region_init_copy (&data->clip_region, region);
+ else
+ temp_region_reset (&data->clip_region);
- gc->clip_x_origin = 0;
- gc->clip_y_origin = 0;
- data->values.clip_x_origin = 0;
- data->values.clip_y_origin = 0;
+ if (reset_origin)
+ {
+ gc->clip_x_origin = 0;
+ gc->clip_y_origin = 0;
+ data->values.clip_x_origin = 0;
+ data->values.clip_y_origin = 0;
+ }
gc_unset_clip_mask (gc);
}
dst_private = GDK_GC_DIRECTFB (dst_gc);
- if (dst_private->clip_region)
- gdk_region_destroy(dst_private->clip_region);
+ temp_region_reset(&dst_private->clip_region);
if (dst_private->values_mask & GDK_GC_FONT)
gdk_font_unref (dst_private->values.font);
g_object_ref (dst_private->values.stipple);
if (dst_private->values_mask & GDK_GC_CLIP_MASK)
g_object_ref (dst_private->values.clip_mask);
- if (dst_private->clip_region)
- dst_private->clip_region = gdk_region_copy (dst_private->clip_region);
}
/**