mirror of
https://github.com/brl/mutter.git
synced 2024-11-12 17:27:03 -05: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 <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*
|
||||
meta_rectangle_to_string (const MetaRectangle *rect,
|
||||
char *output)
|
||||
|
@ -24,9 +24,11 @@
|
||||
#ifndef META_BOXES_H
|
||||
#define META_BOXES_H
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
#include "common.h"
|
||||
|
||||
#define META_TYPE_RECTANGLE (meta_rectangle_get_type ())
|
||||
|
||||
typedef struct _MetaRectangle MetaRectangle;
|
||||
struct _MetaRectangle
|
||||
{
|
||||
@ -70,6 +72,11 @@ struct _MetaEdge
|
||||
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:
|
||||
* rect_to_string: RECT_LENGTH
|
||||
* region_to_string: (RECT_LENGTH+strlen(separator_string)) *
|
||||
|
Loading…
Reference in New Issue
Block a user