From daf5a112fb0ed3a28d0685504520be15fb42cb0c Mon Sep 17 00:00:00 2001 From: Rui Matos Date: Sun, 12 Jun 2016 18:38:35 +0200 Subject: [PATCH] meta/boxes: typedef cairo_rectangle_int_t MetaRectangle They are already effectively interchangeable so this should reduce pointless casts. Just like in GDK though, we need to keep the old definition for instrospection to be able to include the struct's fields. --- src/backends/native/meta-renderer-native.c | 8 +++----- src/backends/x11/meta-renderer-x11.c | 4 +--- src/core/boxes-private.h | 2 -- src/core/boxes.c | 11 ----------- src/meta/boxes.h | 13 ++++++++++++- 5 files changed, 16 insertions(+), 22 deletions(-) diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index 67d0273b9..117e522c9 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -1037,14 +1037,12 @@ meta_renderer_native_create_view (MetaRenderer *renderer, CoglContext *cogl_context = clutter_backend_get_cogl_context (clutter_backend); CoglOnscreen *onscreen; CoglFramebuffer *framebuffer; - cairo_rectangle_int_t view_layout; MetaRendererView *view; GError *error = NULL; - view_layout = meta_rectangle_to_cairo_rectangle (&monitor_info->rect); onscreen = cogl_onscreen_new (cogl_context, - view_layout.width, - view_layout.height); + monitor_info->rect.width, + monitor_info->rect.height); cogl_onscreen_set_swap_throttled (onscreen, _clutter_get_sync_to_vblank ()); @@ -1054,7 +1052,7 @@ meta_renderer_native_create_view (MetaRenderer *renderer, error->message); view = g_object_new (META_TYPE_RENDERER_VIEW, - "layout", &view_layout, + "layout", &monitor_info->rect, "framebuffer", framebuffer, "monitor-info", monitor_info, NULL); diff --git a/src/backends/x11/meta-renderer-x11.c b/src/backends/x11/meta-renderer-x11.c index 565a28eb3..bd604bc73 100644 --- a/src/backends/x11/meta-renderer-x11.c +++ b/src/backends/x11/meta-renderer-x11.c @@ -76,7 +76,6 @@ meta_renderer_x11_create_view (MetaRenderer *renderer, ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend); CoglContext *cogl_context = clutter_backend_get_cogl_context (clutter_backend); int width, height; - cairo_rectangle_int_t view_layout; CoglTexture2D *texture_2d; CoglOffscreen *offscreen; @@ -86,10 +85,9 @@ meta_renderer_x11_create_view (MetaRenderer *renderer, height = monitor_info->rect.height; texture_2d = cogl_texture_2d_new_with_size (cogl_context, width, height); offscreen = cogl_offscreen_new_with_texture (COGL_TEXTURE (texture_2d)); - view_layout = meta_rectangle_to_cairo_rectangle (&monitor_info->rect); return g_object_new (META_TYPE_RENDERER_VIEW, - "layout", &view_layout, + "layout", &monitor_info->rect, "framebuffer", COGL_FRAMEBUFFER (offscreen), NULL); } diff --git a/src/core/boxes-private.h b/src/core/boxes-private.h index 315cc268a..c2eec0ae0 100644 --- a/src/core/boxes-private.h +++ b/src/core/boxes-private.h @@ -215,6 +215,4 @@ GList* meta_rectangle_find_nonintersected_monitor_edges ( const GList *monitor_rects, const GSList *all_struts); -cairo_rectangle_int_t meta_rectangle_to_cairo_rectangle (MetaRectangle *rect); - #endif /* META_BOXES_PRIVATE_H */ diff --git a/src/core/boxes.c b/src/core/boxes.c index bc9a11916..2a70497ca 100644 --- a/src/core/boxes.c +++ b/src/core/boxes.c @@ -2013,14 +2013,3 @@ meta_rectangle_find_nonintersected_monitor_edges ( return ret; } - -cairo_rectangle_int_t -meta_rectangle_to_cairo_rectangle (MetaRectangle *rect) -{ - return (cairo_rectangle_int_t) { - .x = rect->x, - .y = rect->y, - .width = rect->width, - .height = rect->height - }; -} diff --git a/src/meta/boxes.h b/src/meta/boxes.h index 4311143ba..847f35c80 100644 --- a/src/meta/boxes.h +++ b/src/meta/boxes.h @@ -34,7 +34,14 @@ * @width: Width of the rectangle * @height: Height of the rectangle */ -typedef struct _MetaRectangle MetaRectangle; +#ifdef __GI_SCANNER__ +/* The introspection scanner is currently unable to lookup how + * cairo_rectangle_int_t is actually defined. This prevents + * introspection data for the GdkRectangle type to include fields + * descriptions. To workaround this issue, we define it with the same + * content as cairo_rectangle_int_t, but only under the introspection + * define. + */ struct _MetaRectangle { int x; @@ -42,6 +49,10 @@ struct _MetaRectangle int width; int height; }; +typedef struct _MetaRectangle MetaRectangle; +#else +typedef cairo_rectangle_int_t MetaRectangle; +#endif /** * MetaStrut: