mirror of
https://github.com/brl/mutter.git
synced 2025-01-23 18:09:10 +00:00
Make MetaRectangle a boxed type
Export a boxed type for MetaRectangle; this is mostly of interest because GdkRectangle has been turned into a typedef for cairo_rectangle_int_t which causes massive problems for using it from gobject-introspection based language bindings. https://bugzilla.gnome.org/show_bug.cgi?id=623335
This commit is contained in:
parent
7feeb72721
commit
11a8ab47fa
@ -30,6 +30,35 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include <X11/Xutil.h> /* Just for the definition of the various gravities */
|
#include <X11/Xutil.h> /* Just for the definition of the various gravities */
|
||||||
|
|
||||||
|
/* It would make sense to use GSlice here, but until we clean up the
|
||||||
|
* rest of this file and the internal API to use these functions, we
|
||||||
|
* leave it using g_malloc()/g_free() for consistency.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MetaRectangle *
|
||||||
|
meta_rectangle_copy (const MetaRectangle *rect)
|
||||||
|
{
|
||||||
|
return g_memdup (rect, sizeof (MetaRectangle));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_rectangle_free (MetaRectangle *rect)
|
||||||
|
{
|
||||||
|
g_free (rect);
|
||||||
|
}
|
||||||
|
|
||||||
|
GType
|
||||||
|
meta_rectangle_get_type (void)
|
||||||
|
{
|
||||||
|
static GType type_id = 0;
|
||||||
|
|
||||||
|
if (!type_id)
|
||||||
|
type_id = g_boxed_type_register_static (g_intern_static_string ("MetaRectangle"),
|
||||||
|
(GBoxedCopyFunc) meta_rectangle_copy,
|
||||||
|
(GBoxedFreeFunc) meta_rectangle_free);
|
||||||
|
return type_id;
|
||||||
|
}
|
||||||
|
|
||||||
char*
|
char*
|
||||||
meta_rectangle_to_string (const MetaRectangle *rect,
|
meta_rectangle_to_string (const MetaRectangle *rect,
|
||||||
char *output)
|
char *output)
|
||||||
|
@ -24,9 +24,11 @@
|
|||||||
#ifndef META_BOXES_H
|
#ifndef META_BOXES_H
|
||||||
#define META_BOXES_H
|
#define META_BOXES_H
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib-object.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
#define META_TYPE_RECTANGLE (meta_rectangle_get_type ())
|
||||||
|
|
||||||
typedef struct _MetaRectangle MetaRectangle;
|
typedef struct _MetaRectangle MetaRectangle;
|
||||||
struct _MetaRectangle
|
struct _MetaRectangle
|
||||||
{
|
{
|
||||||
@ -70,6 +72,11 @@ struct _MetaEdge
|
|||||||
MetaEdgeType edge_type;
|
MetaEdgeType edge_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
GType meta_rectangle_get_type (void);
|
||||||
|
|
||||||
|
MetaRectangle *meta_rectangle_copy (const MetaRectangle *rect);
|
||||||
|
void meta_rectangle_free (MetaRectangle *rect);
|
||||||
|
|
||||||
/* Output functions -- note that the output buffer had better be big enough:
|
/* Output functions -- note that the output buffer had better be big enough:
|
||||||
* rect_to_string: RECT_LENGTH
|
* rect_to_string: RECT_LENGTH
|
||||||
* region_to_string: (RECT_LENGTH+strlen(separator_string)) *
|
* region_to_string: (RECT_LENGTH+strlen(separator_string)) *
|
||||||
|
Loading…
x
Reference in New Issue
Block a user