[mutter] meta/boxes: typedef cairo_rectangle_int_t MetaRectangle



commit daf5a112fb0ed3a28d0685504520be15fb42cb0c
Author: Rui Matos <tiagomatos gmail com>
Date:   Sun Jun 12 18:38:35 2016 +0200

    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 67d0273..117e522 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 565a28e..bd604bc 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 315cc26..c2eec0a 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 bc9a119..2a70497 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 4311143..847f35c 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:


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