[mutter/wayland] window: Add meta_window_get_client_area_rect



commit ec2c3e1438592bdd5914c3c46dd138d7cab5e8df
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Feb 26 19:33:43 2014 -0500

    window: Add meta_window_get_client_area_rect

 src/compositor/meta-window-actor.c |   11 +----------
 src/core/window-private.h          |    3 +++
 src/core/window.c                  |   31 +++++++++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 10 deletions(-)
---
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 5513fb3..6fc5ef5 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1835,21 +1835,12 @@ static void
 check_needs_reshape (MetaWindowActor *self)
 {
   MetaWindowActorPrivate *priv = self->priv;
-  MetaFrameBorders borders;
   cairo_rectangle_int_t client_area;
 
   if (!priv->needs_reshape)
     return;
 
-  meta_frame_calc_borders (priv->window->frame, &borders);
-
-  client_area.x = borders.total.left;
-  client_area.y = borders.total.top;
-  client_area.width = priv->window->rect.width;
-  if (priv->window->shaded)
-    client_area.height = 0;
-  else
-    client_area.height = priv->window->rect.height;
+  meta_window_get_client_area_rect (window, &client_area);
 
   meta_window_actor_update_shape_region (self, &client_area);
 
diff --git a/src/core/window-private.h b/src/core/window-private.h
index d37c27d..2d2f8ae 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -743,6 +743,9 @@ void meta_window_set_surface_mapped (MetaWindow *window,
 
 Window meta_window_get_toplevel_xwindow (MetaWindow *window);
 
+void meta_window_get_client_area_rect (const MetaWindow      *window,
+                                       cairo_rectangle_int_t *rect);
+
 void meta_window_activate_full (MetaWindow     *window,
                                 guint32         timestamp,
                                 MetaClientType  source_indication,
diff --git a/src/core/window.c b/src/core/window.c
index aa7f284..8bbe5c4 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -5651,6 +5651,37 @@ meta_window_get_outer_rect (const MetaWindow *window,
   meta_window_get_frame_rect (window, rect);
 }
 
+/**
+ * meta_window_get_client_area_rect:
+ * @window: a #MetaWindow
+ * @rect: (out): pointer to a cairo rectangle
+ *
+ * Gets the rectangle for the boundaries of the client area, relative
+ * to the frame. If the window is shaded, the height of the rectangle
+ * is 0.
+ */
+void
+meta_window_get_client_area_rect (const MetaWindow      *window,
+                                  cairo_rectangle_int_t *rect)
+{
+  if (window->frame)
+    {
+      rect->x = window->frame->child_x;
+      rect->y = window->frame->child_y;
+    }
+  else
+    {
+      rect->x = 0;
+      rect->y = 0;
+    }
+
+  rect->width = window->rect.width;
+  if (window->shaded)
+    rect->height = window->rect.height;
+  else
+    rect->height = 0;
+}
+
 const char*
 meta_window_get_startup_id (MetaWindow *window)
 {


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