[mutter] window: Add meta_window_is_monitor_sized



commit a6a9d3f448a5a3598e6a3b478bf212005c6435ab
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Sun Feb 17 21:12:45 2013 +0100

    window: Add meta_window_is_monitor_sized
    
    We duplicate this checks in multiple places so lets add this to
    avoid code duplication.

 src/core/window.c |   33 +++++++++++++++++++++++++++++++++
 src/meta/window.h |    1 +
 2 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index b12b1f7..e4a8ddc 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -3647,6 +3647,39 @@ meta_window_is_fullscreen (MetaWindow *window)
 }
 
 /**
+ * meta_window_is_monitor_sized:
+ *
+ * Return value: %TRUE if the window is occupies an entire monitor or
+ *               the whole screen.
+ */
+gboolean
+meta_window_is_monitor_sized (MetaWindow *window)
+{
+  if (window->fullscreen)
+    return TRUE;
+
+  if (window->override_redirect)
+    {
+      MetaRectangle window_rect, monitor_rect;
+      int screen_width, screen_height;
+
+      meta_screen_get_size (window->screen, &screen_width, &screen_height);
+      meta_window_get_outer_rect (window, &window_rect);
+
+      if (window_rect.x == 0 && window_rect.y == 0 &&
+          window_rect.width == screen_width && window_rect.height == screen_height)
+        return TRUE;
+
+      meta_screen_get_monitor_geometry (window->screen, window->monitor->number, &monitor_rect);
+
+      if (meta_rectangle_equal (&window_rect, &monitor_rect))
+        return TRUE;
+    }
+
+  return FALSE;
+}
+
+/**
  * meta_window_is_on_primary_monitor:
  *
  * Return value: %TRUE if the window is on the primary monitor
diff --git a/src/meta/window.h b/src/meta/window.h
index 87368c0..9814f47 100644
--- a/src/meta/window.h
+++ b/src/meta/window.h
@@ -141,6 +141,7 @@ void     meta_window_foreach_ancestor         (MetaWindow            *window,
 
 MetaMaximizeFlags meta_window_get_maximized (MetaWindow *window);
 gboolean          meta_window_is_fullscreen (MetaWindow *window);
+gboolean          meta_window_is_monitor_sized (MetaWindow *window);
 gboolean          meta_window_is_on_primary_monitor (MetaWindow *window);
 gboolean          meta_window_requested_bypass_compositor (MetaWindow *window);
 gboolean          meta_window_requested_dont_bypass_compositor (MetaWindow *window);


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